import type { AccountUsageFetchResult, ProxyPassthroughAccount, ProxyQuotaRefreshRunResult, ProxyQuotaRefreshMetrics, ProxyQuotaRefreshRuntimeState } from "../types/index.js";
export declare class AccountQuotaRefreshCoordinator {
    private readonly inFlight;
    private readonly states;
    private metrics;
    getState(accountKey: string): ProxyQuotaRefreshRuntimeState;
    /**
     * Run one refresh per account. `trigger` must identify the quota window or
     * handoff condition so repeated requests deduplicate without hiding a later
     * reset window.
     */
    run(account: ProxyPassthroughAccount, trigger: string, fetcher: (candidate: ProxyPassthroughAccount) => Promise<AccountUsageFetchResult>, options?: {
        force?: boolean;
        now?: number;
    }): Promise<ProxyQuotaRefreshRunResult>;
    clear(): void;
    getMetrics(): ProxyQuotaRefreshMetrics;
    private getOrCreateState;
}
