import type { BffErrorCode, ConversationDocumentContextWire, ModelCapability } from "@oscharko-dev/keiko-contracts";
export interface ConversationAttachment {
    readonly kind: "image" | "document";
    readonly mimeType: string;
    readonly sizeBytes: number;
}
export interface ConversationValidationInput {
    readonly modelId: string;
    readonly modelCapabilities: ReadonlyMap<string, ModelCapability>;
    readonly attachments?: readonly ConversationAttachment[] | undefined;
    readonly documentContext?: readonly ConversationDocumentContextWire[] | undefined;
}
export type ConversationValidationResult = {
    readonly ok: true;
} | {
    readonly ok: false;
    readonly code: BffErrorCode;
    readonly message: string;
};
export declare const MAX_AGGREGATE_DOCUMENT_BYTES = 262144;
export declare const MAX_ATTACHMENT_BYTES: number;
export declare const ALLOWED_IMAGE_MIME_PREFIXES: readonly string[];
export declare const ALLOWED_DOCUMENT_MIME_PREFIXES: readonly string[];
export declare const ALLOWED_DOCUMENT_MIME_LITERALS: ReadonlySet<string>;
export declare function validateConversationPayload(input: ConversationValidationInput): ConversationValidationResult;
//# sourceMappingURL=conversation-validation.d.ts.map