import { IRPCProtocol } from '@opensumi/ide-connection';
import { Event } from '@opensumi/ide-core-common';
import { ICreateOutputChannelOptions, IExtHostOutput } from '../../../common/vscode';
import * as types from '../../../common/vscode/ext-types';
export declare class ExtHostOutput implements IExtHostOutput {
    private rpcProtocol;
    constructor(rpcProtocol: IRPCProtocol);
    createOutputChannel(name: string): types.OutputChannel;
    createOutputChannel(name: string, options: string | ICreateOutputChannelOptions): types.LogOutputChannel;
}
export declare class OutputChannelImpl implements types.OutputChannel {
    #private;
    readonly name: string;
    private disposed;
    private batchedOutputLine;
    private batchedTimer;
    constructor(name: string, rpcProtocol: IRPCProtocol);
    replace(value: string): void;
    dispose(): void;
    append(value: string): void;
    appendLine(value: string): void;
    clear(): void;
    protected flushOutputString(): void;
    show(preserveFocus: boolean | undefined): void;
    hide(): void;
    setLanguageId(languageId: string): void;
    protected validate(): void;
}
export declare class LogOutputChannelImpl extends OutputChannelImpl implements types.LogOutputChannel {
    logLevel: types.OutputChannelLogLevel;
    private onDidChangeLogLevelEmitter;
    onDidChangeLogLevel: Event<types.OutputChannelLogLevel>;
    constructor(name: string, rpcProtocol: IRPCProtocol, logLevel: types.OutputChannelLogLevel);
    private data2String;
    private now;
    private label;
    private logWithLevel;
    trace(message: string, ...args: any[]): void;
    debug(message: string, ...args: any[]): void;
    info(message: string, ...args: any[]): void;
    warn(message: string, ...args: any[]): void;
    error(error: string | Error, ...args: any[]): void;
}
//# sourceMappingURL=ext.host.output.d.ts.map