export type ImageReceiverSource = "user" | "application" | "runtime" | "official-module";
export type ImageReceiverBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type ImageReceiverErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_IMAGE_PAYLOAD" | "INVALID_IMAGE_PAYLOAD" | "INVALID_VISUAL_REGION" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type ImageReceiverGate = {
    accepted: boolean;
    reason?: string;
};
export type ImageDimensions = {
    width?: number;
    height?: number;
};
export type VisualRegion = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export type RawImageInput = {
    kind: "raw-image";
    bytes: Uint8Array | readonly number[];
    format: string;
    dimensions?: ImageDimensions;
};
export type ReferencedImageInput = {
    kind: "image-reference";
    uri: string;
    format?: string;
    dimensions?: ImageDimensions;
};
export type VisualRegionImageInput = {
    kind: "visual-region";
    imageId: string;
    region: VisualRegion;
    label?: string;
};
export type ContextImageInput = {
    kind: "context-image";
    contextId: string;
    label?: string;
    format?: string;
};
export type ImageReceiverPayload = RawImageInput | ReferencedImageInput | VisualRegionImageInput | ContextImageInput;
export type ImageReceiverRequest = {
    runtimeId?: string;
    sessionId?: string;
    source?: ImageReceiverSource;
    payload?: ImageReceiverPayload;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: ImageReceiverGate;
    governance?: ImageReceiverGate;
};
export type ImageReceiverError = {
    code: ImageReceiverErrorCode;
    message: string;
    boundary: ImageReceiverBoundary;
    safeForRuntimeInspection: true;
};
export type ReceivedImageInput = {
    kind: "image";
    runtimeId: string;
    sessionId: string;
    source: ImageReceiverSource;
    payloadKind: ImageReceiverPayload["kind"];
    visualMaterial: {
        format?: string;
        byteLength?: number;
        uri?: string;
        imageId?: string;
        contextId?: string;
        dimensions?: ImageDimensions;
        region?: VisualRegion;
        label?: string;
    };
    promptPackHandoff: "pending";
    textFallbackCreated: false;
    providerPayloadCreated: false;
    unsafeSideEffects: false;
};
export type ImageReceiverResult = {
    ok: true;
    input: ReceivedImageInput;
    events: readonly string[];
} | {
    ok: false;
    error: ImageReceiverError;
    events: readonly string[];
};
export declare const imageInputReceiverDescriptor: {
    readonly modality: "image";
    readonly route: "agent_executionEngine.IOTransceiver.inputReceiver";
    readonly purpose: "preserve image material as visual input instead of flattening it into text";
    readonly providerPayloadCreated: false;
    readonly textFallbackCreated: false;
    readonly unsafeSideEffects: false;
};
export declare function receiveImageInput(request?: ImageReceiverRequest): ImageReceiverResult;
