/** * Choosing where to go next when the model you are on runs out. * * Rotation used to ask only "which account still works". That is the wrong * question when the limit is per model. If a session is on Fable and Fable runs * out on this account, the useful move is another account that still has Fable, * not any account at all, and certainly not one whose Fable is also spent. * * Only when NO account has room on the current model is it worth changing model, * and then it should be the next one you would actually want rather than * whatever happens to be free. Hence a preference order, defaulting to Fable * then Opus, and configurable because that order is a matter of taste. */ export interface AccountModelUsage { name: string; /** Per-model utilization, 0..1. A model missing here has not been read. */ models: Record; /** True when the whole account is out, whatever the model. */ accountWideOut?: boolean; } /** Normalized so "Fable", "fable" and "claude-fable-5[1m]" are one thing. */ export declare function normalizeModel(model: string): string; /** Does this account have room on `model` right now? */ export declare function hasRoomFor(account: AccountModelUsage, model: string): boolean;