import type { ProviderType } from '../../shared/types/provider.js';
import type { ProviderUsageSnapshot } from '../models/response.js';
import { type StepType } from './providerEvent.js';
export interface UsageEventLoggerConfig {
    readonly logsDir: string;
    readonly sessionId: string;
    readonly runId: string;
    readonly provider: ProviderType;
    readonly providerModel: string;
    readonly step: string;
    readonly stepType: StepType;
    readonly enabled: boolean;
}
export interface UsageEventLogger {
    readonly filepath: string;
    setStep(step: string, stepType: StepType): void;
    setProvider(provider: ProviderType, providerModel: string): void;
    logUsage(params: {
        readonly success: boolean;
        readonly usage: ProviderUsageSnapshot;
        readonly timestamp?: Date;
    }): void;
}
export declare function createUsageEventLogger(config: UsageEventLoggerConfig): UsageEventLogger;
export declare function isUsageEventsEnabled(config?: {
    logging?: {
        usageEvents?: boolean;
    };
}): boolean;
//# sourceMappingURL=usageEventLogger.d.ts.map