import type { loadLocalAsset } from "../content/asset.js";
import type { LlmProvider } from "../llm/model-id.js";
export type AssetAttachment = Awaited<ReturnType<typeof loadLocalAsset>>["attachment"];
export declare const MAX_DOCUMENT_BYTES_DEFAULT: number;
export declare function isUnsupportedAttachmentError(error: unknown): boolean;
export declare function isTextLikeMediaType(mediaType: string): boolean;
export declare function assertAssetMediaTypeSupported({ attachment, sizeLabel, }: {
    attachment: AssetAttachment;
    sizeLabel: string | null;
}): void;
export declare function getTextContentFromAttachment(attachment: AssetAttachment): {
    content: string;
    bytes: number;
} | null;
export declare function getFileBytesFromAttachment(attachment: AssetAttachment): Uint8Array | null;
export declare function ensureCliAttachmentPath({ sourceKind, sourceLabel, attachment, }: {
    sourceKind: "file" | "asset-url";
    sourceLabel: string;
    attachment: AssetAttachment;
}): Promise<string>;
export declare function shouldMarkitdownConvertMediaType(mediaType: string): boolean;
export declare function supportsNativeFileAttachment({ provider, attachment, }: {
    provider: LlmProvider;
    attachment: {
        kind: "image" | "file";
        mediaType: string;
    };
}): boolean;
export declare function assertProviderSupportsAttachment({ provider, modelId, attachment, }: {
    provider: LlmProvider;
    modelId: string;
    attachment: {
        kind: "image" | "file";
        mediaType: string;
    };
}): void;
