/**
 * Context types for AI interactions
 * Based on architecture.md#task_ai_contexts Collection
 */
export declare enum AIContextType {
    PROMPT = "prompt",
    RESULT = "result",
    FEEDBACK = "feedback",
    ERROR = "error",
    UPDATE = "update"
}
/**
 * AI agent types supported by the system
 */
export declare enum AIAgentType {
    OPENAI = "openai",
    LANGCHAIN = "langchain",
    NLP = "nlp",
    CLAUDE_CODE = "claude_code",
    BMAD_AGENT = "bmad_agent",
    CUSTOM = "custom"
}
/**
 * Interface for context data JSON field
 */
export interface AIContextData {
    prompt?: string;
    systemPrompt?: string;
    parameters?: Record<string, any>;
    response?: string;
    completionTokens?: number;
    promptTokens?: number;
    totalTokens?: number;
    feedbackType?: 'positive' | 'negative' | 'correction';
    feedbackMessage?: string;
    userRating?: number;
    errorCode?: string;
    errorMessage?: string;
    stackTrace?: string;
    retryCount?: number;
    modelUsed?: string;
    temperature?: number;
    maxTokens?: number;
    timestamp?: string;
    sessionId?: string;
    requestId?: string;
    metadata?: Record<string, any>;
}
/**
 * Entity for storing AI agent context and prompt data
 * Tracks all AI interactions for tasks including prompts, results, feedback, and errors
 *
 * Based on architecture.md#task_ai_contexts Collection (lines 213-224)
 */
export declare class TaskAIContextEntity {
    id: string;
    /**
     * Foreign key to tasks.id
     * References the task this AI context belongs to
     */
    task_id: string;
    /**
     * Type of AI agent (openai, langchain, claude_code, bmad_agent, etc.)
     */
    ai_agent_type: AIAgentType;
    /**
     * Type of context (prompt, result, feedback, error)
     */
    context_type: AIContextType;
    /**
     * JSON data containing prompts, responses, metadata
     * Uses simple-json for SQLite compatibility
     */
    context_data: AIContextData;
    /**
     * Timestamp when the AI execution occurred
     */
    execution_timestamp: Date;
    /**
     * Whether the AI operation was successful
     */
    success: boolean;
    /**
     * Number of tokens used in the operation (nullable)
     */
    tokens_used: number | null;
    /**
     * Execution time in milliseconds (nullable)
     */
    execution_time_ms: number | null;
    /**
     * Timestamp when the record was created
     */
    created_at: Date;
    /**
     * Calculate the cost based on token usage
     * @param pricePerToken Price per token in USD
     * @returns Estimated cost in USD
     */
    calculateCost(pricePerToken?: number): number | null;
    /**
     * Check if this is an error context
     */
    isError(): boolean;
    /**
     * Get the total token count from context data
     */
    getTotalTokens(): number;
    /**
     * Get a summary of the context for logging
     */
    getSummary(): string;
    /**
     * Validate the entity before saving
     */
    validate(): void;
}
//# sourceMappingURL=task-ai-context.entity.d.ts.map