export declare class SanitizerError extends Error { readonly code: 'input_too_long'; readonly field?: string; readonly maxLength: number; readonly actualLength: number; constructor(args: { code: 'input_too_long'; maxLength: number; actualLength: number; field?: string; }); } export declare const HARD_STRIP_PATTERNS: readonly RegExp[]; export declare const UNTRUSTED_OPEN = ""; export declare const UNTRUSTED_CLOSE = ""; export declare const MAX_BRIEF_LENGTH = 8000; export declare const MAX_STYLE_LENGTH = 200; export declare const MAX_ASPECT_RATIO_LENGTH = 32; export declare const MAX_NOTES_LENGTH = 1000; export declare const MAX_LATEST_USER_TEXT_LENGTH = 12000; export declare const MAX_PRIOR_USER_TEXT_LENGTH = 3600; export declare const MAX_PRIOR_ASSISTANT_TEXT_LENGTH = 6000; export declare const MAX_CURRENT_MESSAGE_LENGTH = 12000; export declare const MAX_RECENT_TURN_LENGTH = 6000; export declare const MAX_CONVERSATION_SUMMARY_LENGTH = 6000; export type SanitizeField = 'brief' | 'style' | 'aspectRatio' | 'notes' | 'latestUserText' | 'priorUserText' | 'priorAssistantText' | 'currentMessage' | 'recentTurn' | 'conversationSummary'; export interface SanitizeResult { ok: boolean; value?: string; reason?: 'too-long' | 'forbidden-control-character' | 'not-a-string'; field: SanitizeField; } export interface SanitizeUntrustedStringOptions { stripDelimiters?: boolean; maxLength?: number; field?: string; } export declare function sanitizeUntrustedString(input: string, opts?: SanitizeUntrustedStringOptions): string; export declare function sanitizeUntrustedString(raw: unknown, field: SanitizeField): SanitizeResult; export declare function escapeAttribute(value: string): string; export declare function wrapAsUntrustedUserInput(field: string, content: string): string; export declare function wrapAsUntrustedUserInput(parts: readonly string[]): string; //# sourceMappingURL=sanitizer.d.ts.map