export type QueueTraceOperation = 'enqueue' | 'dequeue' | 'ack' | 'length' | 'drain';
export type QueueTraceStatus = 'ok' | 'error';
export type QueueTraceEvent = {
    traceId: string;
    spanId: string;
    queueName: string;
    operation: QueueTraceOperation;
    status: QueueTraceStatus;
    startedAt: string;
    endedAt: string;
    durationMs: number;
    error?: string;
    attributes?: Record<string, unknown>;
};
export type QueueTraceExporter = (events: ReadonlyArray<QueueTraceEvent>) => void | Promise<void>;
export declare const QueueTracing: Readonly<{
    isEnabled: () => boolean;
    registerExporter(exporter: QueueTraceExporter): void;
    unregisterExporter(exporter: QueueTraceExporter): void;
    flush(): Promise<number>;
    snapshot(limit?: number): QueueTraceEvent[];
    prune(): void;
    reset(): void;
    traceOperation<T>(input: {
        queueName: string;
        operation: QueueTraceOperation;
        attributes?: Record<string, unknown>;
        execute: () => Promise<T>;
    }): Promise<T>;
}>;
export default QueueTracing;
//# sourceMappingURL=QueueTracing.d.ts.map