import { ICallback } from 'redis-smq-common';
import { RedisClient } from '../../common/redis-client/redis-client.js';
import { EventBus } from '../event-bus/index.js';
import { EQueueDeliveryModel, EQueueType, IQueueParams, IQueueProperties } from './types/index.js';
export declare class Queue {
    protected redisClient: RedisClient;
    protected eventBus: EventBus;
    protected logger: import("redis-smq-common").ILogger;
    constructor();
    save(queue: string | IQueueParams, queueType: EQueueType, deliveryModel: EQueueDeliveryModel, cb: ICallback<{
        queue: IQueueParams;
        properties: IQueueProperties;
    }>): void;
    exists(queue: string | IQueueParams, cb: ICallback<boolean>): void;
    delete(queue: string | IQueueParams, cb: ICallback<void>): void;
    getProperties(queue: string | IQueueParams, cb: ICallback<IQueueProperties>): void;
    getQueues(cb: ICallback<IQueueParams[]>): void;
    shutdown: (cb: ICallback<void>) => void;
}
//# sourceMappingURL=queue.d.ts.map