export interface LupisConfig { projectId: string; apiKey?: string; serviceName?: string; serviceVersion?: string; filterSensitiveData?: boolean; sensitiveDataPatterns?: string[]; redactionMode?: 'mask' | 'remove' | 'hash'; } export interface TokenUsage { input_tokens: number; output_tokens: number; cache_tokens?: number; total_tokens: number; } export interface CostBreakdown { input_cost: number; output_cost: number; cache_cost?: number; total_cost: number; } export interface TraceData { id: string; projectId: string; timestamp: number; type: 'http_request' | 'tool_call' | 'message'; duration?: number; input?: { url: string; method: string; headers?: Record; body?: any; provider?: string; }; output?: { status: number; headers?: Record; body?: any; duration: number; }; error?: string; chatId?: string; sessionId?: string; threadId?: string; userId?: string; userName?: string; organizationId?: string; organizationName?: string; tokenUsage?: TokenUsage; costBreakdown?: CostBreakdown; model?: string; userMessageCount?: number; assistantMessageCount?: number; totalMessageCount?: number; toolCallCount?: number; toolResultCount?: number; tool?: { name: string; type: string; input: any; output: any; cost: number; duration: number; success: boolean; }; metadata?: Record; tags?: string[]; } export type ProviderName = 'openai' | 'claude' | 'gemini' | 'cohere' | 'huggingface' | 'google' | 'unknown'; export interface ConversationContext { chatId: string; sessionId?: string; threadId?: string; userId: string; userName?: string; organizationId?: string; organizationName?: string; } export interface NormalizedStreamingResult { type: 'streaming_response'; provider: ProviderName; model?: string; aggregatedText?: string; data?: string[]; toolCalls?: any[]; contentType?: string; totalChunks?: number; totalLength?: number; isComplete?: boolean; } export interface ProviderHandler { provider: ProviderName; detect: (url: string) => boolean; isStreamingChunk: (textChunk: string) => boolean; accumulateChunk: (state: any, textChunk: string) => { state: any; result?: NormalizedStreamingResult; }; normalizeFinal: (rawBodyText: string) => any; } export interface LupisBlockOptions { chatId?: string; name?: string; metadata?: LupisMetadata; captureHttp?: boolean; captureConsole?: boolean; } export interface LupisInterceptorLike { startIntercepting: () => void; stopIntercepting: () => void; setChatId: (chatId: string) => void; clearChatId: () => void; } export interface LupisMetadata { userId?: string; organizationId?: string; sessionId?: string; chatId?: string; [key: string]: string | number | boolean | null | undefined; } export interface SensitiveDataFilter { filterSensitiveData: boolean; sensitiveDataPatterns: string[]; redactionMode: 'mask' | 'remove' | 'hash'; } //# sourceMappingURL=types.d.ts.map