export interface ChatMessage {
    role: 'user' | 'assistant' | 'system';
    content: string;
}
export interface ChatRequest {
    modelId: string;
    message: string;
    enableWebSearch?: boolean;
    temperature?: number;
    maxTokens?: number;
    conversationHistory?: ChatMessage[];
}
export interface ChatResponse {
    model: string;
    modelName: string;
    provider: string;
    response: string;
    usage: {
        inputTokens: number;
        outputTokens: number;
        totalTokens: number;
    };
    cost: string | null;
    webSearchEnabled: boolean;
    webSearchResults?: string[];
}
export interface CompareRequest {
    modelIds: string[];
    message: string;
    enableWebSearch?: boolean;
    temperature?: number;
    maxTokens?: number;
}
export interface CompareResponse {
    message: string;
    comparisons: Array<{
        model: string;
        modelName: string;
        provider: string;
        response: string;
        usage: {
            inputTokens: number;
            outputTokens: number;
            totalTokens: number;
        };
        cost: string | null;
        success: boolean;
        error?: string;
    }>;
    totalCost: string;
    timestamp: string;
}
export interface BrainsRequest {
    question: string;
    enableWebSearch?: boolean;
    temperature?: number;
    maxTokens?: number;
}
export interface BrainsResponse {
    type: string;
    file: {
        filename: string;
        filepath: string | null;
        url: string | null;
        localPath?: string;
        dataUrl?: string;
        error?: string;
    };
    summary: {
        question: string;
        modelsQueried: number;
        successfulResponses: number;
        totalCost: string;
        totalTokens: number;
        timestamp: string;
    };
    responses: Array<{
        model: {
            id: string;
            name: string;
            provider: string;
        };
        status: 'success' | 'error';
        response?: string;
        error?: string;
        tokensUsed: number;
        cost: number;
        webSearchResults?: string[] | null;
        reasoning?: string | null;
    }>;
    message: string;
    instructions: string;
}
export interface ModelInfo {
    id: string;
    name: string;
    provider: string;
    capabilities: string[];
    pricing: {
        inputCostPer1kTokens: number;
        outputCostPer1kTokens: number;
    };
    features: {
        webSearch: boolean;
        reasoning: boolean;
        maxContextTokens: number;
        latencySpeed: string;
    };
    description: string;
}
export interface ModelsResponse {
    totalModels: number;
    availableProviders: string[];
    models: ModelInfo[];
}
export interface ApiResponse<T> {
    success: boolean;
    data?: T;
    error?: {
        code: string;
        message: string;
        details?: any;
    };
    metadata: {
        requestId: string;
        sessionId?: string;
        cost?: number;
        balanceAfter?: number;
        timestamp: string;
        processingTime: number;
    };
}
export interface HealthResponse {
    status: 'healthy' | 'unhealthy';
    timestamp: string;
    uptime: number;
    version: string;
    services: {
        mcpClient: {
            status: 'connected' | 'disconnected' | 'error';
            lastCheck: string;
        };
        sessionManager: {
            status: 'running' | 'stopped';
            activeSessions: number;
        };
        database: {
            status: 'connected' | 'disconnected' | 'error';
            lastCheck: string;
            responseTime?: number;
        };
    };
}
export interface RequestContext {
    requestId: string;
    sessionId: string;
    userId: string;
    apiKeyId: string;
    permissions: string[];
    startTime: number;
}
//# sourceMappingURL=api.d.ts.map