import type { ImageContent } from "@gajae-code/ai/core"; import { type LoadedImageInput, transformImageInputBytes } from "./image-loading"; export declare const MAX_PASTED_IMAGE_SOURCE_BYTES: number; export declare const MAX_PASTED_IMAGE_OUTPUT_BYTES: number; export declare const MAX_PASTED_IMAGE_DIMENSION = 20000; export declare const MAX_PASTED_IMAGE_PIXELS = 40000000; export declare const MAX_PASTED_IMAGE_DECODED_BYTES: number; export type PastedImageBatchErrorCode = "too-many" | "unsafe-path" | "unsupported-image" | "source-aggregate-too-large" | "output-aggregate-too-large" | "dimensions-too-large"; export declare class PastedImageBatchError extends Error { readonly code: PastedImageBatchErrorCode; readonly imagePath?: string | undefined; constructor(code: PastedImageBatchErrorCode, message: string, imagePath?: string | undefined); } export interface LoadedPastedImageBatch { images: ImageContent[]; loadedInputs: LoadedImageInput[]; sourcePaths: string[]; } export interface PastedImageLoadingDependencies { /** Synchronization hook used to exercise pathname swaps after descriptor open. */ afterDescriptorOpen?: (imagePath: string, index: number) => Promise | void; beforeDescriptorRead?: (imagePath: string, index: number) => Promise | void; transformImageBytes?: typeof transformImageInputBytes; } export type PastedImageSourcePolicy = "confirmed" | "automatic-temp"; export interface LoadPastedImageBatchOptions { paths: readonly string[]; autoResize: boolean; signal: AbortSignal; sourcePolicy?: PastedImageSourcePolicy; maxImageBytes?: number; maxSourceBytes?: number; maxOutputBytes?: number; maxDimension?: number; maxPixels?: number; maxDecodedBytes?: number; dependencies?: PastedImageLoadingDependencies; } export declare function loadPastedImageBatch(options: LoadPastedImageBatchOptions): Promise;