import type { Plan, PlanType, SessionBlock } from '../types/index.js';
export declare class Plans {
    static readonly DEFAULT_TOKEN_LIMIT: number;
    static readonly DEFAULT_COST_LIMIT: number;
    static readonly DEFAULT_MESSAGE_LIMIT: number;
    static readonly COMMON_TOKEN_LIMITS: number[];
    static readonly LIMIT_DETECTION_THRESHOLD = 0.95;
    private static buildPlan;
    private static formatTokenLimit;
    static getAllPlans(): Record<PlanType, Plan>;
    static getPlan(planType: PlanType): Plan;
    static getPlanByName(name: string): Plan | null;
    static getTokenLimit(plan: string, blocks?: SessionBlock[]): Promise<number>;
    static getCostLimit(plan: string): number;
    static getMessageLimit(plan: string): number;
    static isValidPlan(plan: string): boolean;
}
export declare const TOKEN_LIMITS: Record<string, number>;
export declare const COST_LIMITS: Record<string, number>;
export declare const DEFAULT_TOKEN_LIMIT: number;
export declare const DEFAULT_COST_LIMIT: number;
export declare const COMMON_TOKEN_LIMITS: number[];
export declare const LIMIT_DETECTION_THRESHOLD = 0.95;
export declare function getTokenLimit(plan: string, blocks?: SessionBlock[]): Promise<number>;
export declare function getCostLimit(plan: string): number;
//# sourceMappingURL=plans.d.ts.map