import { getDefaultAccount } from '../accounts/account-manager';
import { fetchCodexQuota } from '../quota/quota-fetcher-codex';
import type { CodexQuotaResult } from '../quota/quota-types';
import { info, warn } from '../../utils/ui';
export type CodexPlanType = CodexQuotaResult['planType'];
export interface CodexRuntimeFallbackModelMap {
    defaultModel?: string;
    opusModel?: string;
    sonnetModel?: string;
    haikuModel?: string;
}
export interface CodexUnsupportedModelError {
    message: string | null;
    code: 'model_not_supported';
    param: string | null;
    type: string | null;
}
interface CodexPlanCompatibilityDeps {
    getDefaultAccount?: typeof getDefaultAccount;
    fetchCodexQuota?: typeof fetchCodexQuota;
    formatInfo?: typeof info;
    formatWarn?: typeof warn;
}
export declare function normalizeCodexModelId(model: string): string;
export declare function getDefaultCodexModel(): string;
export declare function getFreePlanFallbackCodexModel(model: string): string | null;
export declare function parseCodexUnsupportedModelError(statusCode: number | undefined, responseBody: string): CodexUnsupportedModelError | null;
export declare function resolveRuntimeCodexFallbackModel(options: {
    requestedModel: string;
    modelMap: CodexRuntimeFallbackModelMap;
    excludeModels?: string[];
}): string | null;
export declare function reconcileCodexModelForActivePlan(options: {
    currentModel: string | undefined;
    verbose: boolean;
}, deps?: CodexPlanCompatibilityDeps): Promise<void>;
export {};
//# sourceMappingURL=codex-plan-compatibility.d.ts.map