import { BasicLogConfigurations, LogContract, LoggingData, RedactConfig } from "./types.mjs"; //#region ../@warlock.js/logger/src/log-channel.d.ts declare abstract class LogChannel implements LogContract { /** * Channel name */ name: string; /** * Channel description */ description?: string; /** * Determine if channel is logging in terminal */ terminal: boolean; /** * Default Configurations */ protected defaultConfigurations: Options; /** * Channel configurations */ protected channelConfigurations: Options; /** * Determine whether the channel is fully initialized */ protected isInitialized: boolean; /** * Constructor */ constructor(configurations?: Options); /** * Initialize the channel */ protected init?(): void | Promise; /** * Get config value */ protected config(key: K): Options[K]; /** * Set configurations */ protected setConfigurations(configurations: Options): this; /** * Determine if the message should be logged */ protected shouldBeLogged(data: LoggingData): boolean; /** * Log the given message */ abstract log(data: LoggingData): void | Promise; /** * Synchronously flush messages */ flushSync?(): void; /** * Asynchronously flush buffered messages. * * Optional — channels that write synchronously per entry (e.g. `ConsoleLog`) * don't implement it. Buffering channels override this to drain their buffer * over async I/O so callers can `await log.flush()` on graceful shutdown. */ flush?(): void | Promise; /** * Read the channel's redact config (if any). Used by `Logger` to apply * per-channel additive redaction on top of the logger-wide floor. * Subclasses normally don't override this — set `redact` in your channel * configuration instead. */ getRedactConfig(): RedactConfig | undefined; /** * Get date and time formats */ protected getDateAndTimeFormat(): { date: string; time: string; }; /** * get basic configurations with the given ones */ protected withBasicConfigurations(configurations: Partial): Options; } //#endregion export { LogChannel }; //# sourceMappingURL=log-channel.d.mts.map