import { type SpawnOptionsWithoutStdio } from "node:child_process";
import type { SecretInputService } from "../services/secret-input.js";
import type { ToolDefinition } from "./contracts.js";
interface ElevatedRunInput {
    command: string;
    username?: string;
    cwd?: string;
    timeoutMs?: number;
    reason?: string;
}
interface SpawnedProcessLike {
    stdout?: NodeJS.ReadableStream | null;
    stderr?: NodeJS.ReadableStream | null;
    stdin?: {
        write(chunk: string): void;
    } | null;
    on(event: "error", listener: (error: Error) => void): this;
    on(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
    kill(signal?: NodeJS.Signals): boolean;
}
export type ElevatedSpawnFactory = (command: string, args: string[], options: SpawnOptionsWithoutStdio) => SpawnedProcessLike;
interface ElevatedToolRuntime {
    platform?: () => NodeJS.Platform;
    getuid?: () => number | undefined;
}
export declare function createElevatedRunTool(secretInput?: SecretInputService, spawnFactory?: ElevatedSpawnFactory, runtime?: ElevatedToolRuntime): ToolDefinition<ElevatedRunInput>;
export {};
//# sourceMappingURL=elevated-tools.d.ts.map