import { type OpenGeniText } from "../messages/runtime.js"; /** Which ceiling ran out: the shared workspace pool, or one member's share of it. */ export type AllowanceScope = "workspace" | "member"; export type AllowanceLabels = { /** "Usage limit reached" for a member ceiling. */ memberLimitReachedTitle: string; /** "Workspace usage limit reached" for the shared pool. */ workspaceLimitReachedTitle: string; /** Who can fix a member ceiling. */ memberRemedy: string; /** Who can fix the workspace pool. */ workspaceRemedy: string; /** "Resets Nov 1". `date` is already formatted by `formatDate`. */ resets: (date: string) => string; /** Shown when a ceiling has no automatic reset. */ noReset: string; /** Formats a reset instant for `resets`. Defaults to a short local date. */ formatDate: (iso: string) => string; }; export declare function formatAllowanceDate(t: OpenGeniText, iso: string, now?: Date): string; /** Full local date and time, for a title/tooltip next to the short date. */ export declare function formatAllowanceInstant(t: OpenGeniText, iso: string): string; export declare const DEFAULT_ALLOWANCE_LABELS: (t: OpenGeniText) => AllowanceLabels; export declare function allowanceLabels(t: OpenGeniText, overrides?: Partial): AllowanceLabels; /** "Resets Nov 1." or the no-reset sentence. */ export declare function allowanceResetSentence(labels: AllowanceLabels, resetsAt: string | null): string;