export type QueueSourceMode = 'full' | 'safe';
export type QueueMode = QueueSourceMode | 'mixed';
export interface LeaseTransactionStats {
    acquired: number;
    contended: number;
    failed: number;
    tries: number;
    duration: number;
}
export declare class QueueSourceStats {
    readonly ref: string;
    connected: boolean;
    mode: QueueSourceMode;
    size: number | null;
    sizeDelta?: number;
    sizeTimestamp?: number;
    healthy: boolean;
    latency: number | null;
    pingTimestamp?: number;
    readonly leaseTransactions: LeaseTransactionStats;
    constructor(ref: string);
}
export declare class QueueStats {
    readonly ref: string;
    readonly key: string | null;
    readonly sources: QueueSourceStats[];
    tasksAcquired: number;
    constructor(ref: string, key: string | null, sources: QueueSourceStats[]);
    get mode(): QueueMode;
    get size(): number | null;
    get sizeDelta(): number | undefined;
    get sizeTimestamp(): number | undefined;
    get healthy(): boolean;
    get maxLatency(): number;
    get leaseTransactions(): LeaseTransactionStats;
}
export declare class FireleaseStats {
    #private;
    readonly queues: QueueStats[];
    constructor(getStuckTasks: () => number);
    get healthy(): boolean;
    get sickQueues(): (string | null)[];
    get sickSources(): string[];
    get stuckTasks(): number;
    get maxLatency(): number;
    get leaseTransactions(): LeaseTransactionStats;
    get tasksAcquired(): number;
}
