import { z } from "@botpress/sdk";
export declare namespace Errors {
    export enum ErrorLevel {
        Warning = "warning",
        Critical = "critical"
    }
    export enum ErrorType {
        Definition = "definition",
        Runtime = "runtime"
    }
    export enum ErrorCode {
        InvalidPrimitiveDefinition = "INVALID_PRIMITIVE_DEFINITION"
    }
    export function toErrorString(e: unknown, includeStack?: boolean): string;
    abstract class AbstractError<Code extends ErrorCode> extends Error {
        static readonly code: ErrorCode;
        static readonly level: ErrorLevel;
        static readonly type: ErrorType;
        constructor(messageOrError?: string | z.ZodError, zodError?: z.ZodError);
        get code(): Code;
        get level(): ErrorLevel;
        get type(): ErrorType;
    }
    export class InvalidPrimitiveError extends AbstractError<ErrorCode.InvalidPrimitiveDefinition> {
        static readonly level = ErrorLevel.Critical;
        static readonly type = ErrorType.Definition;
        static readonly code = ErrorCode.InvalidPrimitiveDefinition;
        constructor(messageOrError?: string | z.ZodError, zodError?: z.ZodError);
    }
    export function isError<T extends new (...args: any[]) => AbstractError<any>>(error: unknown, errorClass: T): error is InstanceType<T>;
    export function isAdkError(error: unknown): error is AbstractError<ErrorCode>;
    export function isDefinitionError(error: unknown): error is AbstractError<ErrorCode>;
    export function isRuntimeError(error: unknown): error is AbstractError<ErrorCode>;
    export {};
}
//# sourceMappingURL=errors.d.ts.map