/// <reference types="node" />
import { ChildProcess } from "child_process";
import { Endpoint } from "./support";
export interface IButlerOpts {
    butlerExecutable: string;
    args?: string[];
    endpointTimeout?: number;
    log?: (msg: string) => void;
}
export declare class Instance {
    process?: ChildProcess;
    _promise: Promise<void>;
    _endpointPromise: Promise<Endpoint>;
    exiting: boolean;
    cancelled: boolean;
    gracefullyExited: boolean;
    constructor(butlerOpts: IButlerOpts);
    getEndpoint(): Promise<Endpoint>;
    cancel(): Promise<void>;
    promise(): Promise<void>;
}
