/** * Docker runner — main entry point for Docker-based execution * * Orchestrates Docker availability check, image build, and container supervision. * Supports both legacy single-container mode and per-project supervisor mode. */ import { type AutoUpdaterHandle } from '../auto-updater'; import { getProjectList, loadConfig } from '../config-manager'; import { DockerSupervisor } from './docker-supervisor'; export interface DockerRunOptions { token?: string; apiUrl?: string; pollInterval?: number; heartbeatInterval?: number; verbose?: boolean; autoUpdate?: boolean; updateChannel?: string; dockerfile?: string; dockerfileSync?: boolean; /** * false to never pull the base image from the container registry (always * build it locally). Overrides config.dockerImagePull. */ imagePull?: boolean; /** * Filter to a single project. Format: "tenantCode/projectCode" * When set, only the matching project is started. */ project?: string; /** Agent ID for log streaming */ agentId?: string; /** * Timeout in ms before forcing exit during shutdown (default: derived from * SHUTDOWN_GRACE_PERIOD_SECONDS, currently 330000 — see docker-supervisor.ts's * `stopAll()`/shutdown() for why it must exceed the `docker stop --time` * grace period). Overridable — mainly used to keep tests fast. */ shutdownTimeoutMs?: number; } export declare function buildContainerArgs(opts: DockerRunOptions): string[]; /** Reset the running flag (for testing). */ export declare function resetIsDockerRunning(): void; export declare function startHostAutoUpdater(opts: DockerRunOptions, config: ReturnType, projects: ReturnType, supervisor: Pick, agentId: string | undefined): AutoUpdaterHandle | undefined; export declare function runInDocker(opts: DockerRunOptions): void; export { checkDockerAvailable, imageExists, buildImage, buildContainerName, removeStaleContainer, dockerLogin, } from './docker-utils'; export { validatePackageNames } from './docker-security'; export { generateProjectDockerfile } from './dockerfile-generator'; export { syncDockerfileToConfigDir, isDockerfileCustomized, hasUnmanagedConfigDockerfile } from './dockerfile-sync'; export { buildProjectImage } from './project-image-builder'; export { buildVolumeMounts, buildEnvArgs, buildProjectVolumeMounts } from './volume-mount-builder'; export type { ProjectDirMapping } from './volume-mount-builder'; export { getInstalledVersion, resetInstalledVersionCache, ensureImage } from './version-manager'; export { migrateProjectConfigDir } from './project-config'; export { DockerSupervisor } from './docker-supervisor'; //# sourceMappingURL=docker-runner.d.ts.map