import { PlatformError, OperationError, ResourceError } from './base.errors.js'; import type { IErrorContext } from './base.errors.js'; /** * Base class for reputation-related errors */ export declare class ReputationError extends OperationError { /** * Creates a new reputation error * * @param message Error message * @param code Error code * @param context Additional context */ constructor(message: string, code: string, context?: IErrorContext); } /** * Error class for reputation check errors */ export declare class ReputationCheckError extends ReputationError { /** * Creates a new reputation check error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; /** * Creates an instance for an IP reputation check error * * @param ip IP address * @param provider Reputation provider * @param originalError Original error * @param context Additional context */ static ipCheckFailed(ip: string, provider: string, originalError?: Error, context?: IErrorContext): ReputationCheckError; /** * Creates an instance for a domain reputation check error * * @param domain Domain * @param provider Reputation provider * @param originalError Original error * @param context Additional context */ static domainCheckFailed(domain: string, provider: string, originalError?: Error, context?: IErrorContext): ReputationCheckError; } /** * Error class for reputation data errors */ export declare class ReputationDataError extends ReputationError { /** * Creates a new reputation data error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; /** * Creates an instance for a data access error * * @param entity Entity type (domain, ip) * @param entityId Entity identifier * @param operation Operation that failed (read, write, update) * @param originalError Original error * @param context Additional context */ static dataAccessFailed(entity: string, entityId: string, operation: string, originalError?: Error, context?: IErrorContext): ReputationDataError; } /** * Error class for blocklist-related errors */ export declare class BlocklistError extends ReputationError { /** * Creates a new blocklist error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; /** * Creates an instance for an entity found on a blocklist * * @param entity Entity type (domain, ip) * @param entityId Entity identifier * @param blocklist Blocklist name * @param reason Reason for listing (if available) * @param context Additional context */ static entityBlocked(entity: string, entityId: string, blocklist: string, reason?: string, context?: IErrorContext): BlocklistError; } /** * Error class for reputation update errors */ export declare class ReputationUpdateError extends ReputationError { /** * Creates a new reputation update error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; } /** * Error class for IP warmup allocation errors */ export declare class WarmupAllocationError extends ReputationError { /** * Creates a new warmup allocation error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; /** * Creates an instance for no available IPs * * @param domain Domain requesting an IP * @param policy Allocation policy that was used * @param context Additional context */ static noAvailableIps(domain: string, policy: string, context?: IErrorContext): WarmupAllocationError; } /** * Error class for IP warmup limit exceeded errors */ export declare class WarmupLimitError extends ResourceError { /** * Creates a new warmup limit error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; /** * Creates an instance for daily sending limit exceeded * * @param ip IP address * @param domain Domain * @param limit Daily limit * @param sent Number of emails sent * @param context Additional context */ static dailyLimitExceeded(ip: string, domain: string, limit: number, sent: number, context?: IErrorContext): WarmupLimitError; } /** * Error class for IP warmup schedule errors */ export declare class WarmupScheduleError extends ReputationError { /** * Creates a new warmup schedule error * * @param message Error message * @param context Additional context */ constructor(message: string, context?: IErrorContext); /** * Creates a new instance with updated context */ protected createWithContext(context: IErrorContext): PlatformError; }