import type { ProviderType, StreamEvent } from '../../shared/types/provider.js';
import type { ProviderUsageSnapshot } from '../models/response.js';
import { type UsageMissingReason } from './contracts.js';
export type StepType = 'normal' | 'parallel' | 'arpeggio' | 'team_leader' | 'workflow_call';
export interface ProviderEventLogRecord {
    timestamp: string;
    provider: ProviderType;
    event_type: string;
    run_id: string;
    step: string;
    session_id?: string;
    message_id?: string;
    call_id?: string;
    request_id?: string;
    data: Record<string, unknown>;
}
export interface UsageEventLogRecord {
    run_id: string;
    session_id: string;
    provider: ProviderType;
    provider_model: string;
    step: string;
    step_type: StepType;
    timestamp: string;
    success: boolean;
    usage_missing: boolean;
    reason?: UsageMissingReason;
    usage: {
        input_tokens?: number;
        output_tokens?: number;
        total_tokens?: number;
        cached_input_tokens?: number;
    };
}
interface UsageEventMeta {
    runId: string;
    sessionId: string;
    provider: ProviderType;
    providerModel: string;
    step: string;
    stepType: StepType;
}
interface BuildUsageRecordParams {
    success: boolean;
    usage: ProviderUsageSnapshot;
    timestamp?: Date;
}
export declare function normalizeProviderEvent(event: StreamEvent, provider: ProviderType, step: string, runId: string): ProviderEventLogRecord;
export declare function buildUsageEventRecord(meta: UsageEventMeta, params: BuildUsageRecordParams): UsageEventLogRecord;
export {};
//# sourceMappingURL=providerEvent.d.ts.map