/// <reference types="node" />
import { EventEmitter } from 'events';
import * as rpc from 'vscode-jsonrpc';
import { BuilderInterface, BuilderCacheInterface, Command, OptionsSource, Uri } from '@dicy/types';
export default class Client extends EventEmitter implements BuilderCacheInterface {
    constructor(autoStart?: boolean);
    createTransport(): [rpc.MessageReader, rpc.MessageWriter];
    start(): Promise<void>;
    exit(): void;
    destroy(): Promise<void>;
    get(file: Uri): Promise<BuilderInterface>;
    getTargets(file: Uri): Promise<string[]>;
    clear(file: Uri): Promise<void>;
    clearAll(): Promise<void>;
    kill(file: Uri, message?: string): Promise<void>;
    killAll(message?: string): Promise<void>;
    setInstanceOptions(file: Uri, options: OptionsSource, merge?: boolean): Promise<void>;
    setUserOptions(file: Uri, options: OptionsSource, merge?: boolean): Promise<void>;
    setDirectoryOptions(file: Uri, options: OptionsSource, merge?: boolean): Promise<void>;
    setProjectOptions(file: Uri, options: OptionsSource, merge?: boolean): Promise<void>;
    run(file: Uri, commands: Command[]): Promise<boolean>;
}
