export interface IOperationQueue {
    enqueue<R>(operation: () => Promise<R>): Promise<R>;
}
/**
 * A queue for operations that are executed one at a time.
 *
 * This is useful for ensuring that operations are executed in order, and that
 * they are not executed concurrently.
 */
export declare class OperationQueue implements IOperationQueue {
    private lastOperation;
    /**
     * Enqueue an operation to be executed one at a time.
     *
     * @param operation - The operation to execute.
     * @returns A promise that resolves to the result of the operation.
     */
    enqueue<R>(operation: () => Promise<R>): Promise<R>;
}
export declare class OperationPassthrough implements IOperationQueue {
    enqueue<R>(operation: () => Promise<R>): Promise<R>;
}
//# sourceMappingURL=operation-queue.d.ts.map