export type FairQueueConfig = {
    /** e.g. 1 year */
    initial_duration: number;
    debug?: boolean;
    /** Selection mode: 'randomized' (default) or 'deterministic' */
    mode?: 'randomized' | 'deterministic';
};
export declare function createFairQueue<Task>(config: FairQueueConfig): FairQueue<Task>;
export declare class FairQueue<Task> {
    config: FairQueueConfig;
    private user_queues;
    constructor(config: FairQueueConfig);
    enqueue(user_id: string | number, task: Task): void;
    dequeue(): Task | null;
    dequeue_randomized(): Task | null;
    dequeue_deterministic(): Task | null;
}
