/** * Base error class for all Sinlyxe API errors */ export class SinlyxeError extends Error { /** HTTP status code */ status: number; /** Raw API response */ response: Record | null; constructor(message: string, status: number, response?: Record | null); } /** * Thrown when authentication fails (invalid API key, expired, etc.) */ export class AuthError extends SinlyxeError { constructor(message: string, response?: Record | null); } /** * Thrown when rate limit is exceeded */ export class RateLimitError extends SinlyxeError { /** Seconds until rate limit resets */ retryAfter: number; constructor(message: string, retryAfter: number, response?: Record | null); } /** * Thrown when the requested resource is not found */ export class NotFoundError extends SinlyxeError { constructor(message: string, response?: Record | null); } /** * Thrown when validation fails (bad input) */ export class ValidationError extends SinlyxeError { constructor(message: string, response?: Record | null); } /** * Thrown when the operation is forbidden (insufficient permissions, IP not bound, etc.) */ export class ForbiddenError extends SinlyxeError { constructor(message: string, response?: Record | null); } /** * Thrown when there's a conflict (e.g., session already running) */ export class ConflictError extends SinlyxeError { constructor(message: string, response?: Record | null); } /** * Thrown when service is unavailable (no bots available, etc.) */ export class ServiceUnavailableError extends SinlyxeError { constructor(message: string, response?: Record | null); }