import type { ModelPricing } from './token-usage';
interface ModelsDevModel {
    id?: string;
    name?: string;
    cost?: {
        input?: number;
        output?: number;
        cache_read?: number;
        cache_write?: number;
    };
    limit?: {
        context?: number;
        output?: number;
        input?: number;
    };
}
interface ModelsDevProvider {
    id?: string;
    name?: string;
    models?: Record<string, ModelsDevModel>;
}
export interface ModelLimits {
    context: number;
    output: number;
    input?: number;
}
export type ModelKey = `${string}/${string}`;
/**
 * Effective Codex context window, per model.
 *
 * Codex reserves 5% of the raw backend window for system prompt, tool overhead, and output:
 * gpt-5.4/5.5 use 272,000 raw tokens; gpt-5.6 uses 372,000 raw tokens.
 */
export declare const CODEX_CONTEXT_WINDOWS: {
    readonly 'gpt-5.6-sol': 353400;
    readonly 'gpt-5.6-terra': 353400;
    readonly 'gpt-5.6-luna': 353400;
    readonly 'gpt-5.5': 258400;
    readonly 'gpt-5.4': 258400;
    readonly 'gpt-5.4-mini': 258400;
};
export type CodexModel = keyof typeof CODEX_CONTEXT_WINDOWS;
/** Unrecognized Codex models predate GPT-5.6's larger window, or are newer than this build. */
export declare function getCodexContextWindow(modelId: string): number;
export declare class ModelProvider {
    static readonly API_URL = "https://models.dev/api.json";
    private modelsData;
    private refreshTimer;
    constructor();
    static fetchFromApi(): Promise<Record<string, ModelsDevProvider> | undefined>;
    scheduleRefresh(): Promise<void>;
    getModelInfo(modelKey: ModelKey): ModelsDevModel | undefined;
    getModelLimits(modelKey: ModelKey): ModelLimits | undefined;
    getModelPricing(modelKey: ModelKey): ModelPricing | undefined;
}
export {};
//# sourceMappingURL=models.d.ts.map