import type { AccountState, AccountUsage, ProviderRefusal, UsageWindow, WindowGates } from "../schemas/providers/plan-limits.js"; export declare const SPENT_UTILIZATION = 100; export declare const provenFull: (window: UsageWindow) => boolean; export declare const pinnedFull: (window: UsageWindow) => UsageWindow; export interface ModelRef { readonly id: string; readonly label?: string | undefined; } export declare const wordsOf: (text: string) => readonly string[]; export declare const runOfWords: (words: readonly string[], needle: readonly string[]) => boolean; export declare const gatesModel: (gates: WindowGates, model: ModelRef) => boolean; export declare const uncoveredModels: (windows: readonly UsageWindow[], served: readonly ModelRef[]) => string[]; export declare const gatingWindows: (usage: AccountUsage | undefined, model?: ModelRef) => readonly UsageWindow[]; export declare const bindingWindow: (usage: AccountUsage | undefined, model?: ModelRef) => UsageWindow | undefined; export declare const answerCovers: (usage: AccountUsage | undefined, served: ModelRef, other: ModelRef) => boolean; export declare const scopedWindow: (usage: AccountUsage | undefined, model: ModelRef) => UsageWindow | undefined; export interface WindowPeriod { readonly seconds: number; readonly short: string; } export declare const periodWords: (pool: { readonly kind: string; readonly label?: string | undefined; }) => string; export declare const windowPeriod: (pool: { readonly kind: string; readonly label?: string | undefined; }) => WindowPeriod | undefined; export declare const windowLive: (window: UsageWindow, measuredAt: number, now: number) => boolean; export declare const currentWindows: (usage: AccountUsage, now: number) => UsageWindow[]; export interface ServiceFacts { readonly account: string; readonly needsReauth?: boolean | undefined; readonly detail?: string | undefined; readonly seatRefusal?: string | undefined; readonly cooling?: { readonly until?: number | undefined; readonly reason?: string | undefined; readonly verify?: string | undefined; } | undefined; readonly usage?: AccountUsage | undefined; readonly label?: string | undefined; } export type RefusalsOnFile = readonly ProviderRefusal[]; export declare const refusedPoolReset: (refusal: ProviderRefusal, accounts: readonly ServiceFacts[]) => number | undefined; export declare const refusalVerdict: (refusal: ProviderRefusal, accounts: readonly ServiceFacts[], now?: number) => "standing" | "answered" | "gone"; export declare const standingOver: (accounts: readonly ServiceFacts[], refusals: RefusalsOnFile, now?: number) => ((account: string) => RefusalsOnFile); export declare const readingHeadroom: (usage: AccountUsage | undefined, model?: ModelRef) => AccountState; export declare const judgedReading: (usage: AccountUsage | undefined, standing: RefusalsOnFile, model?: ModelRef) => AccountUsage | undefined; export declare const newestRefusal: (refusals: RefusalsOnFile) => ProviderRefusal | undefined; export declare const serviceState: (facts: ServiceFacts, standing?: RefusalsOnFile, model?: ModelRef, now?: number) => AccountState; export declare const serviceStates: (accounts: readonly ServiceFacts[], refusals?: RefusalsOnFile, model?: ModelRef, now?: number) => ReadonlyMap; export declare const reopensAtOf: (state: AccountState) => number | undefined; export type FleetCapacity = { readonly kind: "unknown"; } | { readonly kind: "serving"; readonly serving: number; readonly accounts: number; readonly roomMeasuredAt?: number | undefined; } | { readonly kind: "spent"; readonly accounts: number; readonly reopensAt?: number | undefined; readonly pool?: string | undefined; }; export declare const fleetOf: (accounts: readonly ServiceFacts[], states: ReadonlyMap) => FleetCapacity; export declare const fleetCapacity: (accounts: readonly ServiceFacts[], refusals?: RefusalsOnFile, model?: ModelRef, now?: number) => FleetCapacity; export declare const preferredAccount: (entries: readonly T[]) => T | undefined; export declare const roomiestAccount: (entries: readonly T[]) => T | undefined; //# sourceMappingURL=plan-pools.d.ts.map