import { EventManager } from "@shahadul-17/event-manager";
import { ProcessOptions } from "./process-options.t";
import { ProcessEventType } from "./process-event-type.e";
import { IProcessEventArguments } from "./process-event-args.i";
import { IProcess } from "./process.i";
/**
 * Parent process shall use this class to communicate with the child process.
 */
export declare class ChildProcess extends EventManager<ProcessEventType, IProcessEventArguments> implements IProcess {
    private _taskCount;
    private readonly _options;
    private readonly streamReader;
    private childProcess;
    constructor(options: ProcessOptions);
    get isChildProcess(): boolean;
    get taskCount(): number;
    get processId(): undefined | number;
    get options(): ProcessOptions;
    incrementTaskCount(step?: number): number;
    decrementTaskCount(step?: number): number;
    private onDataReceivedAsync;
    spawnAsync(): Promise<IProcess>;
    sendAsync<Type>(data: Type): Promise<boolean>;
    private static toProcessFilePath;
}
//# sourceMappingURL=child-process.d.ts.map