import { Dequeue } from '../dequeue';
import { Quota } from './quota';
/** keep track of API invocations, allowing or disallowing them based on our quota */
export declare class QuotaManager {
    protected _quota: Quota;
    protected _activeCount: number;
    protected history: Dequeue<unknown>;
    constructor(_quota: Quota);
    /** The current quota */
    get quota(): Quota;
    /** The number of currently-active invocations */
    get activeCount(): number;
    /** Max amount of time a queued request can wait before throwing a timeout error */
    get maxDelay(): number;
    /**
     * Log that an invocation started.
     * @returns true if the invocation was allowed, false if not (you can try again later)
     */
    start(): boolean;
    /** Log that an invocation ended */
    end(): void;
    protected removeExpiredHistory(): void;
}
