import { OnApplicationBootstrap } from '@nestjs/common'; import { PrismaService } from '../prisma/prisma.service'; import { TelemetryService } from '../telemetry/telemetry.service'; import { RunStorageService } from '../storage/run-storage.service'; import { StepExecution } from '@dokkimi/config'; import { SubmitInstanceDto } from './dto/submit-instance.dto'; import { NamespaceLifecycleService } from '../namespace-lifecycle/namespace-lifecycle.service'; import { DockerRegistryService } from '../namespace-lifecycle/docker/docker-registry.service'; import { RegistryCredential } from '@dokkimi/config'; import { RunCleanupService } from './run-cleanup.service'; import { DeploymentSchedulerService } from './deployment-scheduler.service'; export declare class RunsService implements OnApplicationBootstrap { private readonly prisma; private readonly runStorage; private readonly lifecycle; private readonly registryService; private readonly telemetry; private readonly cleanup; private readonly scheduler; private readonly logger; onApplicationBootstrap(): Promise; constructor(prisma: PrismaService, runStorage: RunStorageService, lifecycle: NamespaceLifecycleService, registryService: DockerRegistryService, telemetry: TelemetryService, cleanup: RunCleanupService, scheduler: DeploymentSchedulerService); createRun(definitionNames: string[], credentials?: RegistryCredential[], projectPath?: string): Promise<{ runId: string; instances: { id: string; name: string; status: import("@prisma/client").$Enums.InstanceStatus; }[]; }>; submitInstance(runId: string, instanceId: string, dto: SubmitInstanceDto): Promise<{ instanceId: string; status: string; }>; getRunHistory(projectPath?: string, limit?: number): Promise<{ runId: string; projectPath: string | null; status: import("@prisma/client").$Enums.RunStatus; createdAt: Date; completedAt: Date | null; instances: { id: string; name: string; status: import("@prisma/client").$Enums.InstanceStatus; testStatus: import("@prisma/client").$Enums.TestStatus | null; errorMessage: string | null; }[]; }[]>; getLatestRun(projectPath?: string): Promise<{ runId: string; status: import("@prisma/client").$Enums.RunStatus; createdAt: Date; completedAt: Date | null; instances: { id: string; name: string; status: import("@prisma/client").$Enums.InstanceStatus; testStatus: import("@prisma/client").$Enums.TestStatus | null; errorMessage: string | null; startedAt: Date | null; stoppedAt: Date | null; }[]; } | null>; getRunStatus(runId: string): Promise<{ runId: string; status: import("@prisma/client").$Enums.RunStatus; createdAt: Date; completedAt: Date | null; cancelledAt: Date | null; instances: { id: string; name: string; status: import("@prisma/client").$Enums.InstanceStatus; testStatus: import("@prisma/client").$Enums.TestStatus | null; errorMessage: string | null; startedAt: Date | null; stoppedAt: Date | null; }[]; }>; stopCurrentRun(): Promise<{ status: string; runId?: undefined; } | { runId: string; status: string; }>; deleteRun(runId: string): Promise<{ runId: string; status: string; }>; deleteAllRuns(projectPath?: string): Promise<{ deleted: number; }>; ensureInstanceRegistered(runId: string, instanceId: string): Promise; private deleteRunStorage; handleTestCompletion(testRunId: string, status: 'success' | 'failure', message?: string, stepExecutions?: StepExecution[]): Promise; handleValidationComplete(instanceId: string, passed: boolean, error?: string): Promise; handleInstancesStopped(runIds: string[]): Promise; }