import type { QueueConfig, QueueItem, QueueStatus, QueuePriority } from './queue.js';
import type { ExtendedQueueStorage } from './storage.js';
export declare class QueueInstance<T = unknown> {
    private readonly config;
    private queue;
    private processor?;
    private running;
    private pollInterval;
    constructor(config: Omit<QueueConfig<T>, 'storage'> & {
        storage: ExtendedQueueStorage<T>;
    });
    useProcessor(fn: (item: QueueItem<T>) => Promise<{
        success: boolean;
    }>): void;
    enqueue(data: T, opts?: {
        id?: string;
        priority?: QueuePriority;
    }): Promise<string>;
    enqueueOnce(id: string, data: T, opts?: {
        priority?: QueuePriority;
        expiresAt?: Date;
    }): Promise<boolean>;
    getDeadLetters(limit?: number): Promise<QueueItem<T>[]>;
    pause(): Promise<void>;
    resume(): Promise<void>;
    isPaused(): Promise<boolean>;
    start(): Promise<void>;
    stop(): void;
    getStats(): Promise<{
        totalProcessed: number;
        totalErrors: number;
        averageProcessingTime: number;
        currentlyProcessing: number;
    }>;
    getStatus(id: string): Promise<QueueStatus | null>;
}
//# sourceMappingURL=api.d.ts.map