import { type IRouter } from '../../../src/index.js';
import { type RedisConfig } from './connection';
import { type QueueDriver } from './driver';
import { type Metrics } from './metrics';
export type { JobPayload } from './driver';
export { createWorker as createQueueWorker, type QueueWorker } from './worker';
export type QueueMonitorConfig = {
    enabled?: boolean;
    basePath?: string;
    middleware?: ReadonlyArray<string>;
    autoRefresh?: boolean;
    refreshIntervalMs?: number;
    redis?: RedisConfig;
};
export type QueueCounts = {
    waiting: number;
    active: number;
    completed: number;
    failed: number;
    delayed: number;
    paused: number;
};
export type QueueMonitorSnapshot = {
    status: 'ok';
    startedAt: string;
    queues: Array<{
        name: string;
        counts: QueueCounts;
    }>;
};
export type LockSummary = {
    key: string;
    ttl?: number;
    expires?: string;
};
export type LockMetrics = {
    active: number;
    attempts: number;
    acquired: number;
    collisions: number;
    collisionRate: number;
};
export type LockHistogramBucket = {
    label: string;
    count: number;
};
export type LockAnalytics = {
    locks: LockSummary[];
    metrics: LockMetrics;
    histogram: LockHistogramBucket[];
};
export type QueueMonitorApi = {
    registerRoutes: (router: IRouter) => void;
    getSnapshot: () => Promise<QueueMonitorSnapshot>;
    getLocks: (pattern?: string) => Promise<LockAnalytics>;
    driver: QueueDriver;
    metrics: Metrics;
    close: () => Promise<void>;
};
export declare const QueueMonitor: Readonly<{
    create(config: QueueMonitorConfig): QueueMonitorApi;
}>;
export default QueueMonitor;
export { createBullMQDriver } from './driver';
/**
 * Package version and build metadata
 * Available at runtime for debugging and health checks
 */
export declare const _ZINTRUST_QUEUE_MONITOR_VERSION = "0.1.0";
export declare const _ZINTRUST_QUEUE_MONITOR_BUILD_DATE = "__BUILD_DATE__";
//# sourceMappingURL=index.d.ts.map