import * as logger from '@applitools/logger';
export type LogHandler = CustomLogHandler | FileLogHandler | ConsoleLogHandler;
export type CustomLogHandler = logger.CustomHandler;
export type FileLogHandler = logger.FileHandler;
export type ConsoleLogHandler = logger.ConsoleHandler;
export declare abstract class LogHandlerData implements CustomLogHandler {
    private _verbose;
    constructor(verbose?: boolean);
    get verbose(): boolean;
    set verbose(verbose: boolean);
    getIsVerbose(): boolean;
    setIsVerbose(verbose: boolean): void;
    log(message: string): void;
    abstract onMessage(message: string): void;
    abstract open(): void;
    abstract close(): void;
    /** @internal */
    toJSON(): LogHandler;
}
export declare class FileLogHandlerData extends LogHandlerData implements FileLogHandler {
    readonly type = "file";
    readonly filename: string;
    readonly append: boolean;
    constructor(verbose?: boolean, filename?: string, append?: boolean);
    onMessage(): void;
    open(): void;
    close(): void;
    /** @internal */
    toJSON(): LogHandler;
}
export declare class ConsoleLogHandlerData extends LogHandlerData implements ConsoleLogHandler {
    readonly type = "console";
    onMessage(): void;
    open(): void;
    close(): void;
    /** @internal */
    toJSON(): LogHandler;
}
export declare class NullLogHandlerData extends LogHandlerData {
    onMessage(): void;
    open(): void;
    close(): void;
    /** @internal */
    toJSON(): LogHandler;
}
