export declare type WithID = {
    id: string;
};
export declare class PriorityQueue<T extends WithID> {
    protected future: T[];
    protected queue: T[];
    protected seen: Record<string, number>;
    private maxAttempts;
    constructor(maxAttempts: number, queue: T[], seen?: Record<string, number>);
    push(...operations: T[]): boolean[];
    pushWithBackoff(operation: T): boolean;
    getAttempts(operation: T): number;
    updateAttempts(operation: T): number;
    includes(operation: T): boolean;
    pop(): T | undefined;
    get length(): number;
    get todo(): number;
}
