import { KeycloakError } from './keycloak-errors.js'; /** * Log level for error messages */ export declare enum LogLevel { DEBUG = "debug", INFO = "info", WARN = "warn", ERROR = "error" } /** * Error log entry */ export interface ErrorLogEntry { timestamp: number; level: LogLevel; error: KeycloakError; context?: Record; } /** * Interface for error logging implementations */ export interface ErrorLogger { /** * Log an error */ log(entry: ErrorLogEntry): void; /** * Get all logged errors */ getErrors(): ErrorLogEntry[]; /** * Clear all logged errors */ clear(): void; } /** * Console-based error logger (default implementation) */ export declare class ConsoleErrorLogger implements ErrorLogger { private errors; private maxEntries; constructor(maxEntries?: number); log(entry: ErrorLogEntry): void; getErrors(): ErrorLogEntry[]; clear(): void; } /** * In-memory error logger (useful for testing) */ export declare class MemoryErrorLogger implements ErrorLogger { private errors; private maxEntries; constructor(maxEntries?: number); log(entry: ErrorLogEntry): void; getErrors(): ErrorLogEntry[]; clear(): void; } /** * Remote error logger (sends errors to a remote endpoint) */ export declare class RemoteErrorLogger implements ErrorLogger { private endpoint; private errors; private maxEntries; private batchSize; private flushInterval; private timer?; constructor(endpoint: string, options?: { maxEntries?: number; batchSize?: number; flushInterval?: number; }); log(entry: ErrorLogEntry): void; getErrors(): ErrorLogEntry[]; clear(): void; /** * Flush errors to remote endpoint */ flush(): Promise; /** * Stop the periodic flush timer */ destroy(): void; } /** * Composite error logger (logs to multiple loggers) */ export declare class CompositeErrorLogger implements ErrorLogger { private loggers; constructor(loggers: ErrorLogger[]); log(entry: ErrorLogEntry): void; getErrors(): ErrorLogEntry[]; clear(): void; } /** * Default error logger instance */ export declare const defaultErrorLogger: ConsoleErrorLogger; //# sourceMappingURL=error-logger.d.ts.map