import { record } from '@synnaxlabs/x'; import { Meta } from './meta'; export declare const LOG_LEVELS: readonly ["debug", "info", "warn", "error"]; export type LogLevel = (typeof LOG_LEVELS)[number]; export interface LogLevelFilterProps { key: string; path: string; level: LogLevel; } type KV = record.Unknown | (() => record.Unknown); /** * LogLevelFilter is a function that returns true if the log at the given * level should be emitted. */ export type LogLevelFilter = (props: LogLevelFilterProps) => boolean; export declare const logThresholdFilter: (thresh: LogLevel) => LogLevelFilter; export interface LogLevelKeyFilterProps { include?: string[]; exclude?: string[]; } export declare const logLevelKeyFiler: (props: LogLevelKeyFilterProps) => LogLevelFilter; export interface LoggerProps { filters?: LogLevelFilter[]; } export declare class Logger { meta: Meta; filters: LogLevelFilter[]; constructor(p?: LoggerProps); private filter; child(meta: Meta): Logger; debug(msg: string, kv?: KV, force?: boolean): void; info(msg: string, kv?: KV, force?: boolean): void; warn(msg: string, kv?: KV, force?: boolean): void; error(msg: string, kv?: KV, force?: boolean): void; static readonly NOOP: Logger; } export {}; //# sourceMappingURL=log.d.ts.map