import { type TypeName } from "./get-type-name";
type ErrorOptionsBase = "cause" extends keyof Error ? Readonly<ErrorOptions> : {
    readonly cause?: unknown;
};
export interface SurrealErrorOptions extends ErrorOptionsBase {
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#surrealerror)
 */
export declare class SurrealError extends Error {
    constructor(message: string, options?: SurrealErrorOptions | undefined);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#surrealtypeerror)
 */
export declare class SurrealTypeError extends SurrealError {
    expected: string;
    actual: TypeName;
    constructor(expected: TypeName | readonly TypeName[], actual: unknown, options?: SurrealErrorOptions | undefined);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#surrealvalueerror)
 */
export declare class SurrealValueError extends SurrealError {
    expected: string | readonly string[];
    actual: unknown;
    constructor(expected: string | readonly string[], actual: unknown, options?: SurrealErrorOptions | undefined);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#surrealaggregateerror)
 */
export declare class SurrealAggregateError extends SurrealError {
    cause: unknown[];
    constructor(message: string, errors: readonly unknown[], options?: Omit<SurrealErrorOptions, "cause"> | undefined);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#circularreferenceerror)
 */
export declare class CircularReferenceError extends SurrealError {
    reference: unknown;
    constructor(reference: unknown, options?: SurrealErrorOptions | undefined);
}
/**
 * {@link NumberRangeError}
 */
export interface NumberRangeErrorOptions extends SurrealErrorOptions {
    readonly integer?: boolean | undefined;
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#numberrangeerror)
 */
export declare class NumberRangeError extends SurrealError {
    range: [from: number | bigint, to: number | bigint];
    actual: number | bigint;
    integer: boolean;
    constructor(range: [from: number | bigint, to: number | bigint], actual: number | bigint, options?: NumberRangeErrorOptions | undefined);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#unsupportedruntimeerror)
 */
export declare class UnsupportedRuntimeError extends SurrealError {
    cause: string;
    constructor(reason: string);
}
/**
 * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/guides/errors/#unreachableerror)
 */
export declare class UnreachableError extends SurrealError {
    constructor(options?: SurrealErrorOptions | undefined);
}
export declare function unreachable(): never;
export declare function unreachable(cause: never): never;
export {};
//# sourceMappingURL=general.d.ts.map