import type { ChildProcess } from 'node:child_process';
import type { InferenceExecutor } from './inference_executor.js';
import { SupervisedProc } from './supervised_proc.js';
export declare class InferenceProcExecutor extends SupervisedProc implements InferenceExecutor {
    #private;
    constructor({ runners, initializeTimeout, closeTimeout, memoryWarnMB, memoryLimitMB, pingInterval, pingTimeout, highPingThreshold, }: {
        runners: {
            [id: string]: string;
        };
        initializeTimeout: number;
        closeTimeout: number;
        memoryWarnMB: number;
        memoryLimitMB: number;
        pingInterval: number;
        pingTimeout: number;
        highPingThreshold: number;
    });
    protected get processKind(): string;
    /**
     * Build an executor configured with the standard supervision defaults, or
     * `undefined` when no plugin has registered an {@link InferenceRunner} (in
     * which case there is nothing to run in a child process).
     *
     * Shared by both the worker and the console, matching python's single
     * `InferenceProcExecutor` construction.
     */
    static createIfNeeded(): InferenceProcExecutor | undefined;
    createProcess(): ChildProcess;
    mainTask(proc: ChildProcess): Promise<void>;
    doInference(method: string, data: unknown): Promise<unknown>;
}
//# sourceMappingURL=inference_proc_executor.d.ts.map