export declare interface LogEntry { timestamp: Date level: LogLevel message: string args?: any[] name: string } export declare interface KeyRotationConfig { enabled: boolean interval: number maxKeys: number } export declare interface EncryptionConfig { algorithm?: EncryptionAlgorithm keyId?: string compress?: boolean keyRotation?: KeyRotationConfig } export declare interface RotationConfig { maxSize?: number maxFiles?: number maxAge?: number compress?: boolean frequency?: 'daily' | 'weekly' | 'monthly' rotateHour?: number rotateMinute?: number rotateDayOfWeek?: number rotateDayOfMonth?: number pattern?: string encrypt?: EncryptionConfig | boolean keyRotation?: { enabled?: boolean interval?: number maxKeys?: number } } export declare interface ClarityConfig { level: LogLevel defaultName: string timestamp: boolean colors: boolean format: 'text' | 'json' maxLogSize: number logDatePattern: string logDirectory: string rotation: boolean | RotationConfig verbose: boolean writeToFile?: boolean } export declare interface Formatter { format: (entry: LogEntry, forFile?: boolean) => Promise formatForFile?: (entry: LogEntry) => Promise } export declare interface LoggerOptions { logDirectory?: string level?: LogLevel format?: 'json' | 'text' rotation?: RotationConfig timestamp?: string | number | Date writeToFile?: boolean showIcons?: boolean fingersCrossed?: boolean | { activationLevel?: LogLevel bufferSize?: number flushOnDeactivation?: boolean stopBuffering?: boolean } } export declare interface Logger { debug: (message: string, ...args: any[]) => Promise info: (message: string, ...args: any[]) => Promise success: (message: string, ...args: any[]) => Promise warn: (message: string, ...args: any[]) => Promise error: (message: string, ...args: any[]) => Promise progress: (total: number, initialMessage?: string) => { update: (current: number, message?: string) => void finish: (message?: string) => void interrupt: (message: string, level?: LogLevel) => void } start: (message: string, ...args: any[]) => Promise time: (label: string) => (metadata?: Record) => Promise destroy: () => Promise createReadStream: () => NodeJS.ReadableStream decrypt?: (data: string) => Promise } export type LogLevel = 'debug' | 'info' | 'success' | 'warning' | 'error'; export type RotationFrequency = 'hourly' | 'daily' | 'weekly' | 'monthly' | 'none'; export type EncryptionAlgorithm = 'aes-256-cbc' | 'aes-256-gcm' | 'chacha20-poly1305'; export type ClarityOptions = Partial;