/**
 * Ask Argus - Core Types
 * Clean, extensible type definitions for the Argus AI agent system
 */
export declare enum ArgusDomain {
    TRU_PULSE = "trupulse",// Traces, spans, sessions
    TRU_EVAL = "trueval",// Functional evaluation (test runs)
    TRU_SCOUT = "truscout",// Security evaluation (guardrails)
    /** Guardrails dashboard — ClickHouse guardrail execution data only (no trace/eval SQL scope). */
    TRU_GUARD = "truguard",
    /** Red team security configuration drafts (same JSON shape as security `config` in DB / setup UI). */
    SECURITY_CONFIG = "securityconfig"
}
/**
 * API call record captured during Argus execution.
 * Used for debugging/UX (e.g., showing SQL/config tool invocations).
 */
export interface ApiCall {
    tool: string;
    timestamp: Date;
    success: boolean;
    /** Optional SQL captured from ClickHouse tool calls. */
    sql?: string;
    /** Optional config payload captured from tools (e.g., draft_security_config). */
    config?: any;
}
/**
 * Argus State - Shared state across all nodes in the graph
 */
export interface ArgusState {
    domain: ArgusDomain;
    query: string;
    filters?: Record<string, any>;
    userId?: string;
    username?: string;
    projectId?: string;
    orgId?: string;
    responseFormat?: 'text' | 'graph' | 'both';
    threadId?: string;
    response?: ArgusResponse;
    error?: string;
    metadata?: {
        startTime: Date;
        endTime?: Date;
        executionPath: string[];
        tokenUsage?: TokenUsage;
        apiCalls?: ApiCall[];
        error?: string;
    };
}
/**
 * Argus Response - Final output from the agent
 */
export interface ArgusResponse {
    answer: string;
    graphData?: {
        type: 'line' | 'bar' | 'pie' | 'table';
        data: any;
        config?: any;
    };
    metadata: {
        domain: ArgusDomain;
        dataPoints: number;
        sources?: string[];
        analysisTime?: number;
        error?: string;
        apiCalls?: ApiCall[];
        /**
         * Optional summary of unique tools/APIs used during this answer.
         * Populated only when ARGUS_INCLUDE_TOOL_SUMMARY env flag is enabled.
         */
        apiToolsSummary?: string;
        apiTools?: string[];
        chatId?: string;
        chatGroupId?: string;
        /** Set by the Argus HTTP controller when the assistant answer includes a draft security-config JSON patch. */
        securityConfigUpdated?: boolean;
    };
}
/**
 * Token Usage
 */
export interface TokenUsage {
    total?: number;
    prompt?: number;
    completion?: number;
}
/**
 * Filter Definition
 */
export interface FilterDefinition {
    name: string;
    type: 'string' | 'number' | 'dateRange' | 'enum' | 'boolean';
    required?: boolean;
    values?: string[];
    description?: string;
}
/**
 * Validation Result
 */
export interface ValidationResult {
    valid: boolean;
    errors: string[];
}
//# sourceMappingURL=types.d.ts.map