import mongoose, { Document } from 'mongoose';
export interface ChatSessionDocument extends Document {
    _id: string;
    userId: string;
    apiKeyId: string;
    request: {
        modelId: string;
        message: string;
        temperature?: number;
        maxTokens?: number;
        enableWebSearch?: boolean;
        conversationHistory?: any[];
    };
    modelInteraction: {
        modelId: string;
        provider: string;
        inputTokens: number;
        outputTokens: number;
        thinkingTokens: number;
        totalTokens: number;
        cost: number;
        costBreakdown: {
            inputCost: number;
            outputCost: number;
            thinkingCost: number;
        };
        latency: number;
        success: boolean;
        errorMessage?: string;
        fullResponse: string;
        responsePreview?: string;
        timestamp?: string;
        requestMetadata?: mongoose.Schema.Types.Mixed;
    };
    totalCost: number;
    duration: number;
    status: 'processing' | 'success' | 'error' | 'timeout';
    balanceUpdate: {
        attempted: boolean;
        success: boolean;
        errorMessage?: string;
        transactionId?: string;
        balanceAfter?: number;
    };
    clientMetadata: {
        ipAddress?: string;
        userAgent?: string;
        requestId?: string;
    };
    createdAt: Date;
    updatedAt: Date;
}
export declare function createChatSessionModel(connection: mongoose.Connection): mongoose.Model<ChatSessionDocument, {}, {}, {}, mongoose.Document<unknown, {}, ChatSessionDocument, {}> & ChatSessionDocument & Required<{
    _id: string;
}> & {
    __v: number;
}, any>;
//# sourceMappingURL=ChatSession.d.ts.map