import type { LaunchSpec } from './types.js';
/** Resolve a host alias to an ssh target. Default: identity (ssh_config resolves it). */
export type HostResolver = (alias: string) => string;
export interface RunResult {
    ok: boolean;
    error?: string;
}
/** Run the spec on this machine: spawn the launcher, resolve when it exits. */
export declare function runLocal(spec: LaunchSpec): Promise<RunResult>;
/** Serialize a launch argv into a single POSIX-quoted shell command string. */
export declare function remoteCommand(spec: LaunchSpec): string;
/** Run the spec on a remote host over SSH. */
export declare function runRemote(spec: LaunchSpec, target: string): RunResult;
/** Run a spec locally (no host / 'local') or on a resolved remote host. */
export declare function runSpec(spec: LaunchSpec, host?: string, resolveHost?: HostResolver): Promise<RunResult>;
