/**
 * Start Application Deployment Use Case
 *
 * Starts a local dev server for an application, keyed by the application's
 * stable ID (UUID) so multiple applications at similar paths can't collide
 * in the `dev_servers` table.
 *
 * Business Rules:
 * - applicationId must be non-empty
 * - The application must exist in the repository
 * - The application's repositoryPath must exist on disk
 * - Rejects the currently running Shep instance's own repository
 *
 * The `IDeploymentService` writes to the `dev_servers` SQLite table on spawn,
 * updates it on Ready (with the detected URL), and removes the row on stop —
 * so deployment state is fully persisted across page reloads AND service
 * restarts (`recoverAll()` reconciles live PIDs on startup).
 *
 * Extracted from the `deployApplication` server action as part of clean-arch
 * violations #1, #2, #3 cleanup (see specs/089-one-click-cloud-deploy/
 * clean-arch-violations.md).
 */
import type { IApplicationRepository } from '../../ports/output/repositories/application-repository.interface.js';
import type { IDeploymentService } from '../../ports/output/services/deployment-service.interface.js';
import type { IFileSystemService } from '../../ports/output/services/file-system-service.interface.js';
import type { IShepInstanceService } from '../../ports/output/services/shep-instance-service.interface.js';
import type { ILogger } from '../../ports/output/services/logger.interface.js';
import { DeploymentState } from '../../../domain/generated/output.js';
export interface StartApplicationDeploymentInput {
    applicationId: string;
}
/**
 * Result DTO preserving the exact shape the `deployApplication` server
 * action historically returned to its callers.
 */
export interface StartApplicationDeploymentResult {
    state: DeploymentState;
}
export declare class StartApplicationDeploymentUseCase {
    private readonly applicationRepo;
    private readonly fileSystem;
    private readonly shepInstance;
    private readonly deploymentService;
    private readonly logger;
    constructor(applicationRepo: IApplicationRepository, fileSystem: IFileSystemService, shepInstance: IShepInstanceService, deploymentService: IDeploymentService, logger: ILogger);
    execute(input: StartApplicationDeploymentInput): Promise<StartApplicationDeploymentResult>;
}
//# sourceMappingURL=start-application-deployment.use-case.d.ts.map