export declare type TLoggerLevelConsole = 'error' | 'log' | 'warn' | 'info' | 'trace';
export declare type TLoggerLevelDeprecate = 'deprecate';
export declare type TLoggerLevel = TLoggerLevelConsole | TLoggerLevelDeprecate;
export interface ILoggerDeprecate {
    /**
     * Same as warning but prefixed with `[DEPRECATED]`
     */
    deprecate(message?: any, ...optionalParams: any[]): void;
}
export interface ILoggerPrint {
    /**
     * Force print regardless of settings
     */
    print?(message?: any, ...optionalParams: any[]): void;
}
export interface ILoggerOptions {
    /**
     * Set logger level on spefic methods
     *
     * If `true` enable on all methods
     *
     * @default ['error','warn','deprecate']
     */
    level?: TLoggerLevel | TLoggerLevel[] | boolean;
    /**
     * Set prefix for all logging method
     */
    prefix?: string;
}
export interface ILoggerProvider extends Pick<Console, TLoggerLevelConsole> {
}
export interface ILogger extends ILoggerProvider, ILoggerDeprecate, ILoggerPrint {
}
export default class Logger implements ILogger {
    private _prefix;
    private _logger;
    private _level;
    info: (message?: any, ...optionalParams: any[]) => void;
    error: (message?: any, ...optionalParams: any[]) => void;
    log: (message?: any, ...optionalParams: any[]) => void;
    warn: (message?: any, ...optionalParams: any[]) => void;
    trace: (message?: any, ...optionalParams: any[]) => void;
    deprecate: (message?: any, ...optionalParams: any[]) => void;
    print?: (message?: any, ...optionalParams: any[]) => void;
    constructor(opts?: ILoggerOptions, logger?: ILoggerProvider);
    private off;
    private hasLogger;
    getOptions(): ILoggerOptions;
}
