import { Api } from './api';
import { LOG_LEVEL, PathEventEmitter } from '@ztimson/utils';
export type LogLevel = 'ERROR' | 'WARN' | 'INFO' | 'LOG' | 'DEBUG' | 'NONE';
export type Log<T> = {
    time: Date;
    level: LOG_LEVEL;
    log: any[];
    ctx?: T;
};
export type ClientLog = Log<{
    url: string;
    user: string;
    ip: string;
    cores: number | 'Unknown';
    mem: number | 'Unknown';
    res: [number, number];
    ua: string | {
        ua: string;
        browser: {
            name: string;
            version: string;
            major: string;
        };
        cpu: {
            architecture: string;
        };
        device: {
            mode?: string;
            type?: string;
        };
        engine: {
            name: string;
            version: string;
        };
        os: {
            name: string;
            version: string;
        };
    };
}>;
export declare class Logger extends PathEventEmitter {
    readonly channel: string;
    private readonly api;
    console: {
        debug: {
            (...data: any[]): void;
            (message?: any, ...optionalParams: any[]): void;
        };
        log: {
            (...data: any[]): void;
            (message?: any, ...optionalParams: any[]): void;
        };
        info: {
            (...data: any[]): void;
            (message?: any, ...optionalParams: any[]): void;
        };
        warn: {
            (...data: any[]): void;
            (message?: any, ...optionalParams: any[]): void;
        };
        error: {
            (...data: any[]): void;
            (message?: any, ...optionalParams: any[]): void;
        };
    };
    constructor(api: Api | string, channel: string, logLevel?: LogLevel | null);
    private buildLog;
    private create;
    channels(): import('@ztimson/utils').PromiseProgress<string[]>;
    delete(channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    read(channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    debug(log: any, channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    log(log: any, channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    info(log: any, channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    warn(log: any, channel?: string): import('@ztimson/utils').PromiseProgress<any>;
    error(log: any, channel?: string): import('@ztimson/utils').PromiseProgress<any>;
}
//# sourceMappingURL=logger.d.ts.map