///
import { EventEmitter } from 'events';
import { ChildProcessWithoutNullStreams } from 'child_process';
import { Writable } from 'stream';
declare type StringMap = {
[index: string]: string;
};
export declare const STATES: StringMap;
declare type IpcPath = string;
declare type IpcResolver = (log: string) => IpcPath | undefined;
declare class ControlledProcess extends EventEmitter {
binaryPath: string;
ipc: any;
logs: any[];
debug: Function;
_state: string;
process?: ChildProcessWithoutNullStreams;
responsePromises: any;
partialData: any;
stdin?: Writable;
resolveIpc: Function;
ipcPath?: IpcPath;
constructor(binaryPath: string, resolveIpc: IpcResolver);
get state(): string;
set state(newState: string);
get isRunning(): boolean;
emitPluginError(error: string | Error): void;
start(flags?: Array): Promise;
stop(): Promise;
private tryResolveIpc;
connectIPC(ipcPath: string): Promise;
onIpcData(data: any): void;
write(payload: string): void;
send(payload: any): Promise;
getLogs(): any[];
appendLogs(lines: Array): void;
restart(): Promise;
}
export default ControlledProcess;
//# sourceMappingURL=ControlledProcess.d.ts.map