import type { ValidationError } from 'joi';
export { AMQPError } from '@cloudamqp/amqp-client';
interface KyooErrorOptions {
    /**
     * The cause data property of an Error instance indicates the specific original cause of the error.
     */
    cause?: Error;
    /**
     * How many rows to trim from the stack trace.
     * This is useful for removing the stack trace of the current function from the error.
     */
    trim?: number;
}
declare const KyooError: {
    new (message: string, options?: KyooErrorOptions): {
        /** @private */
        readonly $__name: string;
        /** @private */
        readonly $__message: string;
        readonly name: string;
        readonly message: string;
        toString(): string;
        readonly [Symbol.toStringTag]: string;
        [Symbol.toPrimitive](hint: "number" | "string" | "default"): string | true;
        stack?: string;
        cause?: unknown;
    };
    [Symbol.hasInstance](instance: unknown): boolean;
    captureStackTrace(targetObject: object, constructorOpt?: Function): void;
    prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
    stackTraceLimit: number;
};
/**
 * Represents an error which is thrown when attempting to create a worker
 * with invalid options.
 */
export declare class KyooUnacceptableWorkerOptionsError extends KyooError {
    constructor(reason?: ValidationError);
}
/**
 * Represents an error which is thrown when attempting to call the `enqueue` method
 * without a job
 */
export declare class KyooNothingToEnqueueError extends KyooError {
    constructor(reason?: ValidationError);
}
/**
 * Represents an error which is thrown when attempting to call the `enqueue` method
 * while the connection to the queue broker is not established.
 */
export declare class KyooNotConnectedError extends KyooError {
    constructor(reason?: ValidationError);
}
/**
 * The error thrown when attempting to add a job with an invalid configuration
 */
export declare class KyooUnenqueueableError extends KyooError {
    constructor(reason?: ValidationError);
}
/**
 * The error thrown when the Kyoo connection configuration passed is not valid
 */
export declare class KyooInvalidConfigurationError extends KyooError {
    constructor(reason: ValidationError);
}
/**
 * The error thrown when Kyoo fails to automatically disposition a job as acknowledged
 */
export declare class KyooNoackError extends KyooError {
    constructor(cause: unknown);
}
/**
 * The error thrown when the data from the broker cannot be coercced into an EnqueueableKyooJob
 */
export declare class KyooInvalidBrokerPayloadError extends KyooError {
    constructor();
}
/**
 * The error thrown when "count" argument for the KyooQueue.jobs.fetch method is invalid
 */
export declare class KyooInvalidFetchCountError extends KyooError {
    constructor(reason: ValidationError);
}
/**
 * The error thrown when the data from the broker cannot be coercced into an EnqueueableKyooJob
 */
export declare class KyooTerminatedWorkerError extends KyooError {
    constructor();
}
/**
 * The error thrown when the data from the broker cannot be coercced into an EnqueueableKyooJob
 */
export declare class KyooBullMQNativeWorkerRanError extends KyooError {
    constructor();
}
/**
 * The error thrown by the amqp adapter's channel
 */
export declare class KyooAMQPChannelError extends KyooError {
    constructor(reason: string);
}
/**
 * The error thrown when the data from the broker cannot be coercced into an EnqueueableKyooJob
 */
export declare class KyooCleanupFailedError extends KyooError {
    constructor();
}
/**
 * Thrown by the SQL adapter when the database schema needs to be migrated
 */
export declare class KyooSQLAdapterNeedsMigrationError extends KyooError {
    constructor();
}
/**
 * The error thrown when the SQL adapter cannot access the Knex internals to reconnect
 */
export declare class KyooSQLAdapterCannotAccessKnexInteralsToReconnectError extends KyooError {
    constructor();
}
/**
 * The error thrown when the SQL adapter cannot acquire a lock in order to perform an operation on a specific queue
 */
export declare class KyooSQLAdapterLockAcquisitionError extends KyooError {
    constructor(queue: string, operation: string);
}
