import { Sequencer } from '@chkt/continuity'; import { log_level } from './level'; import { getTime } from './time'; import { inferType } from './type'; import { LoggableData } from './context'; import { ParseConfig, ParseHost, Parsers } from './parse'; import { Aggregator, attachEmitter } from './aggregate'; import { decorateTokens } from './decorate'; import { handleLog } from './handler'; export interface LoggerConfig extends ParseConfig { readonly threshold: log_level; readonly tags: string; readonly infer: inferType; readonly parsers: Parsers; readonly decorate: decorateTokens; readonly time: getTime; readonly aggregate: attachEmitter; readonly handle: handleLog; } declare type asyncTrigger = () => Promise; declare type enqueue = (fn: asyncTrigger) => void; declare type parseAndHandle = (this: LoggerHost, data: LoggableData) => void; export interface LoggerHost { readonly config: LoggerConfig; readonly baseTags: ReadonlyArray; readonly sequence: Sequencer; readonly queue: enqueue; readonly aggregate: Aggregator; readonly parser: ParseHost; readonly parseAndHandle: parseAndHandle; } declare function parseAndHandle(this: LoggerHost, data: LoggableData): void; export declare function getDefaultConfig(): LoggerConfig; export declare function createHost(config: Partial, base: LoggerConfig): LoggerHost; export declare function updateHost(config: Partial, host: LoggerHost): LoggerHost; export {};