import { Runtime } from 'webextension-polyfill';
declare function isServiceWorker(): boolean;
declare function isValidPort(port: Runtime.Port): port is Runtime.Port & {
    sender: Runtime.MessageSender & {
        tab: {
            id: number;
        };
        frameId: number;
    };
};
declare function isValidSender(sender: Runtime.MessageSender): sender is Runtime.MessageSender & {
    tab: {
        id: number;
    };
    frameId: number;
};
export declare enum LogLevel {
    ERROR = 0,
    WARN = 1,
    INFO = 2,
    DEBUG = 3,
    TRACE = 4
}
export interface LoggerOptions {
    level?: LogLevel;
    enabled?: boolean;
}
export declare class Logger {
    private context;
    private static level;
    private static enabled;
    private static instances;
    private static globalOptions?;
    private static getLevel;
    static configure(options: LoggerOptions): void;
    static getLogger(context: string): Logger;
    private constructor();
    error(message: string, ...args: any[]): void;
    warn(message: string, ...args: any[]): void;
    info(message: string, ...args: any[]): void;
    debug(message: string, ...args: any[]): void;
    trace(message: string, ...args: any[]): void;
}
export { isValidPort, isValidSender, isServiceWorker };
