declare const LEVELS: {
    DEBUG: number;
    INFO: number;
    WARN: number;
    ERROR: number;
};
declare type Level = keyof typeof LEVELS;
export interface LoggerEvent {
    level?: Level;
    action: string;
    category?: string;
    error?: Error;
    data?: Record<string, any>;
}
export interface LoggerSubscriber {
    key: string;
    level?: Level;
    onEvent: (event: LoggerEvent) => void;
}
declare class Logger {
    private loggers;
    ignoredErrors: string[];
    subscribe(newLogger: LoggerSubscriber): () => LoggerSubscriber[];
    unsubscribe(key: string): void;
    log(event: LoggerEvent): void;
}
export declare const logger: Logger;
export {};
