import type { ToolResultImageArtifact, ToolResultImageDisposition } from '@longrun-ai/kernel/types/storage';
import type { ChatMessage, ModelInfo } from '../client';
import type { LlmRequestContext, ToolResultImageIngest, UserImageIngest } from '../gen';
type ToolResultImageReadResult = {
    kind: 'ready';
    bytes: Buffer;
} | {
    kind: 'missing';
} | {
    kind: 'read_failed';
    detail: string;
};
export declare const OPENAI_TOOL_RESULT_IMAGE_BUDGET_BYTES: number;
export declare const OPENAI_COMPATIBLE_TOOL_RESULT_IMAGE_BUDGET_BYTES: number;
export declare const CODEX_TOOL_RESULT_IMAGE_BUDGET_BYTES: number;
export declare const ANTHROPIC_TOOL_RESULT_IMAGE_BUDGET_BYTES: number;
export declare function resolveModelImageInputSupport(modelInfo: ModelInfo | undefined, defaultValue: boolean): boolean;
export declare function buildImageBudgetLimitDetail(args: {
    byteLength: number;
    budgetBytes: number;
}): string;
export declare function buildImageBudgetKeyForContentItem(args: {
    msg: ChatMessage;
    itemIndex: number;
    artifact: ToolResultImageArtifact;
}): string;
export declare function selectLatestImagesWithinBudget(context: ChatMessage[], budgetBytes: number): Set<string>;
export declare function readToolResultImageBytesSafe(artifact: ToolResultImageArtifact): Promise<ToolResultImageReadResult>;
export declare function buildToolResultImageIngest(args: {
    requestContext: LlmRequestContext;
    toolCallId: string;
    toolName: string;
    artifact: ToolResultImageArtifact;
    disposition: ToolResultImageDisposition;
    mimeType?: string;
    detail?: string;
    providerPathLabel?: string;
}): ToolResultImageIngest;
export declare function buildUserImageIngest(args: {
    requestContext: LlmRequestContext;
    msgId?: string;
    artifact: ToolResultImageArtifact;
    disposition: ToolResultImageDisposition;
    mimeType?: string;
    detail?: string;
    providerPathLabel?: string;
}): UserImageIngest;
export {};
