import { Disposable } from '@theia/core';
export declare class SingleEventEmitter<T> {
    private listeners;
    on(listener: (arg: T) => void): Disposable;
    emit(data: T): void;
}
export interface StructuredMessage {
    channel: string;
    message: string;
}
export declare class FxdkDataService {
    data: {
        [key: string]: any;
    };
    private bufferedServerOutput;
    private structuredServerMessages;
    private readonly bufferedServerOutputChanged;
    onBufferedServerOutputChanged(cb: (output: string) => void): Disposable;
    private readonly structuredServerMessageReceivedEvent;
    onStructuredServerMessageReceived(cb: (st: StructuredMessage) => void): Disposable;
    private readonly clearAllServerOutputsEvent;
    onClearAllServerOutputs(cb: () => void): Disposable;
    getBufferedServerOutput(): string;
    getStructuredServerMessages(): StructuredMessage[];
    clearAllServerOutputs(): void;
    setBufferedServerOutput(output: string): void;
    receiveStructuredServerMessage(message: StructuredMessage): void;
    private structuredGameMessages;
    private readonly structuredGameMessageReceivedEvent;
    onStructuredGameMessageReceived(cb: (st: StructuredMessage) => void): Disposable;
    private readonly clearGameOutputEvent;
    onClearGameOutput(cb: () => void): Disposable;
    getStructuredGameMessage(): StructuredMessage[];
    receiveStructuredGameMessage(message: StructuredMessage): void;
    clearGameOutput(): void;
    sendMessageToShell(type: string, data?: any): void;
}
//# sourceMappingURL=fxdk-data-service.d.ts.map