import type { TtscBuildResult } from "../../structures/internal/TtscBuildResult";
export interface ResidentCheckProcessOptions {
    args: readonly string[];
    binary: string;
    cwd: string;
    env: NodeJS.ProcessEnv;
}
export interface ResidentCheckRequest {
    changed?: readonly string[];
    external?: readonly string[];
    invalidate?: boolean;
}
export interface ResidentCheckTelemetry {
    pid: number;
    programLoads: number;
    programUpdates: number;
    reused: boolean;
}
export type ResidentCheckResult = TtscBuildResult & {
    telemetry: ResidentCheckTelemetry;
};
/**
 * FIFO JSON-line client for a check-stage `check-serve` sidecar.
 *
 * A watch session serializes cycles, but the client still queues replies so a
 * caller cannot accidentally pair a late response with the next request. Any
 * framing failure retires the process; the launcher then falls back to the
 * ordinary one-shot command for that cycle.
 */
export declare class ResidentCheckProcess {
    private readonly child;
    private readonly pending;
    private readonly reader;
    private failure;
    private stderr;
    constructor(options: ResidentCheckProcessOptions);
    request(payload: ResidentCheckRequest): Promise<ResidentCheckResult>;
    dispose(): void;
    private onLine;
    private settle;
    private fail;
    private terminate;
    private exitError;
}
