import { type Reporter } from '@quenty/cli-output-helpers/reporting'; import { type BuildPlaceOptions, type BuiltPlace } from '../build/build.js'; import { type Deployment, type JobContext, type DeployPlaceOptions, type RunScriptOptions, type ScriptRunResult, type JobLogs } from './job-context.js'; import { type OpenCloudClient } from '../open-cloud/open-cloud-client.js'; import { type BasePlaceResolver } from '@quenty/nevermore-deploy'; /** * Abstract base for JobContext implementations. * * Tracks every built place and guarantees cleanup in `disposeAsync` — even * when individual deployments fail. * * Multiple places that resolve to the same rojo project share one rojo build, * refcounted across `releaseBuiltPlaceAsync`. The per-place basePlace merge * still runs once per place against the shared output. */ export declare abstract class BaseJobContext implements JobContext { protected _reporter: Reporter; protected _openCloudClient: OpenCloudClient | undefined; private _basePlaceResolver; private _builtPlaces; private _sharedRojoBuilds; constructor(reporter: Reporter, openCloudClient?: OpenCloudClient, basePlaceResolver?: BasePlaceResolver); buildPlaceAsync(options: BuildPlaceOptions): Promise; private _buildCacheKey; private _applyTargetOverrides; private _getOrCreateSharedBuildAsync; private _doSharedBuildAsync; private _mergeBasePlaceAsync; releaseBuiltPlaceAsync(builtPlace: BuiltPlace): Promise; abstract deployBuiltPlaceAsync(options: DeployPlaceOptions): Promise; abstract runScriptAsync(deployment: Deployment, options: RunScriptOptions): Promise; abstract getLogsAsync(deployment: Deployment): Promise; abstract releaseAsync(deployment: Deployment): Promise; disposeAsync(): Promise; } //# sourceMappingURL=base-job-context.d.ts.map