/** The slice of `process` that determines how the daemon was launched. */ export interface ProcessInvocationSignals { /** process.execPath, the runtime (bun/node) in a dev run, or the compiled binary itself. */ readonly execPath: string; /** process.argv, [runtimeOrBinary, entry?, ...args]. */ readonly argv: readonly string[]; } /** The resolved service ExecStart pieces plus whether this is a compiled binary. */ export interface DaemonExecInvocation { readonly command: string; readonly args: string[]; /** True when the running process is a compiled single-file binary (safe to promote). */ readonly fromCompiledBinary: boolean; } /** Live process signals, the production input to the resolvers below. */ export declare function currentProcessSignals(): ProcessInvocationSignals; /** * Whether the running process is a compiled single-file binary (rather than a * `bun run .ts` / `node .js` dev invocation). * * The discriminator is the process entry (argv[1]): a dev run always points it * at a real on-disk SOURCE file; a compiled binary points it at an embedded * virtual-FS entry, at a bare subcommand, or has no entry at all. */ export declare function isCompiledBinaryInvocation(signals: ProcessInvocationSignals): boolean; /** * Derive the service ExecStart invocation from how the process was started. A * compiled binary launches itself with its real argv (no source paths); a * source/dev run yields the `run ` shape, but the caller MUST gate on * `fromCompiledBinary` before writing a unit for a self-promotion (a dev run * should never be promoted). */ export declare function resolveDaemonExecInvocation(signals: ProcessInvocationSignals, workingDirectory: string): DaemonExecInvocation; //# sourceMappingURL=daemon-exec-invocation.d.ts.map