import { AIGenerationLimits, AIInterface, AIReasoningOptions, AIRequestControls, AIRequestEvent, AIRequestOperation, AIRequestStatus, BaseAIOptions, ChatOptions, ImageGenerationOptions } from './types'; export declare const DEFAULT_AI_TIMEOUT_MS = 120000; export declare const DEFAULT_AI_MAX_RETRIES = 0; export declare const DEFAULT_AI_GENERATION_LIMITS: Readonly; export interface NormalizedBaseAIOptions extends BaseAIOptions { timeout: number; maxRetries: number; generationLimits: AIGenerationLimits; } export interface PreparedRequestControls { signal: AbortSignal; timeout: number; cleanup(): void; didTimeout(): boolean; } export declare function normalizeBaseAIOptions(options: T): T & NormalizedBaseAIOptions; export declare function normalizeChatOptions(providerOptions: BaseAIOptions, options: T, provider?: string, model?: string): T & { maxTokens: number; reasoning: AIReasoningOptions; }; export declare function normalizeImageGenerationOptions(providerOptions: BaseAIOptions, options: T, provider?: string, model?: string): T & { n: number; }; export declare function prepareRequestControls(providerOptions: BaseAIOptions, requestOptions?: AIRequestControls): PreparedRequestControls; export declare function emitRequestEvent(providerOptions: BaseAIOptions, event: Omit & { tags?: Record; }): void; export declare function classifyRequestFailure(error: unknown, didTimeout?: boolean): { status: AIRequestStatus; errorCode?: string; }; export declare function requestEventBase(options: { providerOptions: BaseAIOptions; provider: string; model: string; operation: AIRequestOperation; callOptions?: { maxTokens?: number; usageTags?: Record; }; effectiveMaxOutputTokens?: number; }): Omit & { tags?: Record; }; /** * Wrap a public provider instance with prompt-free lifecycle observation. * Provider adapters still enforce limits internally so direct construction is * protected; this wrapper adds one terminal event to the public getAI() path. */ export declare function createObservedAI(client: T, providerOptions: BaseAIOptions): T; //# sourceMappingURL=safety.d.ts.map