import type { StandardSchemaV1 } from '@standard-schema/spec';
export interface IError {
    code: number;
    message: string;
    meta?: any;
}
export declare abstract class BaseError extends Error implements IError {
    readonly meta?: any;
    readonly code: number;
    constructor(message: string, meta?: any);
    toJSON(): {
        code: number;
        message: string;
        meta: any;
    };
    toString(): string;
}
export declare class SystemError extends BaseError {
    readonly code: number;
    constructor(message: string, meta?: any);
}
export interface ValidationErrorMeta {
    result: StandardSchemaV1.Result<any>;
    [key: string]: any;
}
export declare class ValidationError extends BaseError {
    readonly code: number;
    readonly meta?: ValidationErrorMeta;
    constructor(message: string, meta?: ValidationErrorMeta);
    toJSON(): {
        result: StandardSchemaV1.Result<any> | undefined;
        code: number;
        message: string;
        meta: any;
    };
}
export declare class NotFoundError extends BaseError {
    readonly code: number;
    constructor(message: string, meta?: any);
}
export declare class UnauthorizedError extends BaseError {
    readonly code: number;
    constructor(message: string, meta?: any);
}
export declare class ForbiddenError extends BaseError {
    readonly code: number;
    constructor(message: string, meta?: any);
}
//# sourceMappingURL=errors.d.ts.map