interface image {
use inferlet:core/common.{queue, pointer, blob, blob-result};
// Embeds an image blob into model-compatible embeddings
embed-image: func(
queue: borrow<queue>, // Queue to execute the embedding operation
emb-ptrs: list<pointer>, // Output object IDs where image embeddings will be stored
image-blob: list<u8>, // Raw image data (e.g. JPEG/PNG bytes)
position-offset: u32 // Positional offset in the embedding space
);
// Computes the number of embeddings required for an image of given dimensions
calculate-embed-size: func(
queue: borrow<queue>, // Queue for executing the computation
image-width: u32, // Width of the input image in pixels
image-height: u32 // Height of the input image in pixels
) -> u32; // Returns required embedding count (e.g. for allocation)
}