import { CollectionDocument } from './collection-document.model';
export type OpenAIUsageSource = 'runner_managed' | 'manual_codex' | 'ai_assistant' | 'qa_runner' | 'deploy' | 'retry' | 'system' | 'unknown';
export type OpenAIUsageSurface = 'support' | 'aicoder' | 'assistant' | 'qa' | 'deploy' | 'manual' | 'system' | 'unknown';
export type OpenAIUsageCostBasis = 'provider_usage' | 'estimated_tokens' | 'manual_estimate' | 'synthetic_allocation' | 'openai_org_cost' | 'unknown';
export interface OpenAIUsageLedgerModel extends CollectionDocument {
    id_client: string;
    timestamp: Date;
    model: string;
    input_tokens: number;
    cached_input_tokens?: number;
    output_tokens: number;
    total_tokens: number;
    cost_estimate: number;
    billable: boolean;
    category?: string;
    id_request?: string;
    id_conversation?: string;
    usage_source?: OpenAIUsageSource | string;
    usage_surface?: OpenAIUsageSurface | string;
    usage_phase?: string;
    cost_basis?: OpenAIUsageCostBasis | string;
    id_run?: string;
    id_job?: string;
    id_app?: string;
    id_ticket?: string;
    is_manual?: boolean;
    is_untracked?: boolean;
    untracked_reason?: string;
    metadata?: Record<string, any>;
}
