import { type ExtensionAPI, type ExtensionContext, type SessionBoundaryDraft, type SettingsManager } from "@earendil-works/pi-coding-agent"; /** Remaining tokens in the provider's active window, or null without a usable estimate. */ export declare function remainingTokens(ctx: Pick): number | null; export declare function registerBudget(pi: ExtensionAPI, isEnabled: () => boolean, settingsManager?: SettingsManager, onCloseOut?: (windowId: string) => void): { automaticResetEnabled: (ctx: ExtensionContext) => boolean; hardReserveDue: (ctx: ExtensionContext) => boolean; consumeTurnEnd: (ctx: ExtensionContext) => SessionBoundaryDraft[]; /** The same close-out countdown the model sees, for user-facing status; null when usage is unknown. */ statusFor: (ctx: ExtensionContext) => { remaining: number | null; }; clear: () => void; };