import { Logger } from 'homebridge';
export declare enum LogLevel {
    DEBUG = 0,
    INFO = 1,
    WARN = 2,
    ERROR = 3,
    NONE = 4
}
export interface LogContext {
    deviceName: string;
    deviceType: string;
    operation?: string;
    characteristic?: string;
    value?: any;
}
export declare class PluginLogger {
    private readonly log;
    private readonly debugMode;
    private currentLevel;
    constructor(log: Logger, debugMode?: boolean);
    setLevel(level: LogLevel): void;
    getLevel(): LogLevel;
    debug(message: string, ...args: any[]): void;
    info(message: string, ...args: any[]): void;
    warn(message: string, ...args: any[]): void;
    error(message: string, ...args: any[]): void;
    operationStart(context: Partial<LogContext>): void;
    operationEnd(context: Partial<LogContext>, error?: Error): void;
    stateChange(context: LogContext): void;
}
//# sourceMappingURL=logger.d.ts.map