export declare abstract class BaseError extends Error {
    readonly context?: any | undefined;
    readonly cause?: Error | undefined;
    abstract readonly code: string;
    abstract readonly statusCode: number;
    readonly timestamp: string;
    readonly severity: 'low' | 'medium' | 'high' | 'critical';
    constructor(message: string, context?: any | undefined, cause?: Error | undefined, severity?: 'low' | 'medium' | 'high' | 'critical');
    toJSON(): Record<string, unknown>;
    withContext(additionalContext: Record<string, unknown>): this;
    isRetryable(): boolean;
    isUserError(): boolean;
    isSystemError(): boolean;
}
export declare class ValidationError extends BaseError {
    readonly code = "VALIDATION_ERROR";
    readonly statusCode = 400;
}
export declare class ContentGenerationError extends BaseError {
    readonly code = "CONTENT_GENERATION_ERROR";
    readonly statusCode = 500;
}
export declare class StorageError extends BaseError {
    readonly code = "STORAGE_ERROR";
    readonly statusCode = 500;
}
export declare class RateLimitError extends BaseError {
    readonly code = "RATE_LIMIT_ERROR";
    readonly statusCode = 429;
}
export declare class ServiceUnavailableError extends BaseError {
    readonly code = "SERVICE_UNAVAILABLE";
    readonly statusCode = 503;
}
export declare class ToolExecutionError extends BaseError {
    readonly toolName: string;
    readonly code = "TOOL_EXECUTION_ERROR";
    readonly statusCode = 500;
    constructor(message: string, toolName: string, cause?: Error);
}
export declare class NetworkError extends BaseError {
    readonly code = "NETWORK_ERROR";
    readonly statusCode = 503;
}
export declare class TimeoutError extends BaseError {
    readonly code = "TIMEOUT_ERROR";
    readonly statusCode = 504;
}
export declare class AuthenticationError extends BaseError {
    readonly code = "AUTHENTICATION_ERROR";
    readonly statusCode = 401;
}
export declare class AuthorizationError extends BaseError {
    readonly code = "AUTHORIZATION_ERROR";
    readonly statusCode = 403;
}
export declare class ConfigurationError extends BaseError {
    readonly code = "CONFIGURATION_ERROR";
    readonly statusCode = 500;
}
//# sourceMappingURL=BaseError.d.ts.map