export declare abstract class DomainError extends Error {
    abstract readonly code: string;
    abstract readonly statusCode: number;
    constructor(message: string);
}
export declare class NotFoundError extends DomainError {
    readonly code = "NOT_FOUND";
    readonly statusCode = 404;
    constructor(resource: string, identifier?: string);
}
export declare class ValidationError extends DomainError {
    readonly code = "VALIDATION_ERROR";
    readonly statusCode = 400;
    constructor(message: string);
}
export declare class ConflictError extends DomainError {
    readonly code = "CONFLICT";
    readonly statusCode = 409;
    constructor(message: string);
}
export declare class UnauthorizedError extends DomainError {
    readonly code = "UNAUTHORIZED";
    readonly statusCode = 401;
    constructor(message?: string);
}
export declare class ForbiddenError extends DomainError {
    readonly code = "FORBIDDEN";
    readonly statusCode = 403;
    constructor(message?: string);
}
export declare class ExternalServiceError extends DomainError {
    readonly code = "EXTERNAL_SERVICE_ERROR";
    readonly statusCode = 502;
    constructor(service: string, message: string);
}
export declare class InsufficientBalanceError extends DomainError {
    readonly code = "INSUFFICIENT_BALANCE";
    readonly statusCode = 400;
    constructor(message?: string);
}
//# sourceMappingURL=DomainError.d.ts.map