declare function getUsageFile(): string;
export interface UsageEntry {
    timestamp: string;
    sessionId: string;
    provider?: string;
    model: string;
    promptTokens: number;
    completionTokens: number;
    totalTokens: number;
    estimatedCost: number;
    firstTokenMs?: number;
    durationMs?: number;
}
export interface UsageData {
    entries: UsageEntry[];
    budget: {
        dailyLimit: number;
        monthlyLimit: number;
        alertThreshold: number;
    };
    totals: {
        allTimeTokens: number;
        allTimeCost: number;
    };
}
export declare function getModelCost(model: string): {
    input: number;
    output: number;
};
export declare function estimateCost(model: string, promptTokens: number, completionTokens: number): number;
export declare function trackUsage(sessionId: string, model: string, promptTokens: number, completionTokens: number, metadata?: {
    provider?: string;
    firstTokenMs?: number | null;
    durationMs?: number | null;
}): {
    cost: number;
    warning?: string;
    entry: UsageEntry;
};
export interface UsagePeriodSummary {
    tokens: number;
    promptTokens: number;
    completionTokens: number;
    cost: number;
    calls: number;
    averageFirstTokenMs: number | null;
    averageDurationMs: number | null;
}
export interface UsageSummary {
    today: UsagePeriodSummary;
    month: UsagePeriodSummary;
    allTime: {
        tokens: number;
        cost: number;
    };
    session: UsagePeriodSummary;
    last: UsageEntry | null;
    budget: UsageData['budget'];
}
export declare function getUsageSummary(sessionId?: string): UsageSummary;
export declare function setBudget(daily: number, monthly: number, threshold?: number): void;
export declare function printUsageSummary(sessionId?: string): void;
declare function summarizeEntries(entries: UsageEntry[]): UsagePeriodSummary;
export declare const _internal: {
    getUsageFile: typeof getUsageFile;
    summarizeEntries: typeof summarizeEntries;
};
export {};
