import type { UseCase } from '../../../../shared/foundation/usecase.base.js';
import type { PidFileContent } from '../../../../shared/services/pidFileManager.js';
export interface StartDaemonInput {
    daemon: boolean;
    port: number | undefined;
}
export interface StartDaemonDependencies {
    readPidFile: () => PidFileContent | null;
    writePidFile: (content: PidFileContent) => void;
    isProcessRunning: (pid: number) => boolean;
    spawnDaemon: (port: number | undefined) => number;
}
export type StartDaemonResult = {
    status: 'started';
    pid: number;
} | {
    status: 'already-running';
    pid: number;
    port: number;
} | {
    status: 'foreground';
};
export declare class StartDaemonUseCase implements UseCase<StartDaemonInput, StartDaemonResult> {
    private readonly deps;
    constructor(deps: StartDaemonDependencies);
    execute(input: StartDaemonInput): StartDaemonResult;
}
//# sourceMappingURL=startDaemon.usecase.d.ts.map