import { z } from 'zod';
import { AIContextType, AIAgentType, AIContextData } from '../entities/task-ai-context.entity';
/**
 * Schema for creating a new task AI context
 */
export declare const CreateTaskAIContextSchema: z.ZodObject<{
    task_id: z.ZodString;
    ai_agent_type: z.ZodEnum<typeof AIAgentType>;
    context_type: z.ZodEnum<typeof AIContextType>;
    context_data: z.ZodAny;
    execution_timestamp: z.ZodOptional<z.ZodDate>;
    success: z.ZodOptional<z.ZodBoolean>;
    tokens_used: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    execution_time_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Schema for updating a task AI context
 */
export declare const UpdateTaskAIContextSchema: z.ZodObject<{
    context_data: z.ZodOptional<z.ZodAny>;
    success: z.ZodOptional<z.ZodBoolean>;
    tokens_used: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    execution_time_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Validates context data based on context type
 * @param contextType The type of context
 * @param contextData The context data to validate
 * @returns Validated context data
 * @throws ZodError if validation fails
 */
export declare function validateContextData(contextType: AIContextType, contextData: any): AIContextData;
/**
 * Type for creating a task AI context
 */
export type CreateTaskAIContextDto = z.infer<typeof CreateTaskAIContextSchema>;
/**
 * Type for updating a task AI context
 */
export type UpdateTaskAIContextDto = z.infer<typeof UpdateTaskAIContextSchema>;
/**
 * Validates and prepares data for creating a task AI context
 * @param data Raw input data
 * @returns Validated and prepared data
 */
export declare function prepareCreateTaskAIContext(data: any): CreateTaskAIContextDto;
/**
 * Calculates total tokens from context data
 * @param contextData The context data
 * @returns Total token count or null
 */
export declare function calculateTotalTokens(contextData: AIContextData): number | null;
/**
 * Estimates cost based on token usage and model
 * @param tokens Number of tokens used
 * @param model Model name
 * @returns Estimated cost in USD
 */
export declare function estimateCost(tokens: number, model?: string): number;
/**
 * Validates if an AI agent type is supported
 * @param agentType The agent type to check
 * @returns True if supported
 */
export declare function isValidAgentType(agentType: string): agentType is AIAgentType;
/**
 * Validates if a context type is valid
 * @param contextType The context type to check
 * @returns True if valid
 */
export declare function isValidContextType(contextType: string): contextType is AIContextType;
//# sourceMappingURL=task-ai-context.validator.d.ts.map