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";
/**
 * Child processes shall use this class to communicate with the parent process.
 */
export declare class ParentProcess extends EventManager<ProcessEventType, IProcessEventArguments> implements IProcess {
    private _taskCount;
    private readonly _options;
    private readonly streamReader;
    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>;
}
//# sourceMappingURL=parent-process.d.ts.map