import { type CompileInput, type PlanEntry, type State, type StateEntry } from "./compile.js"; import type { LiveReaders } from "./refresh.js"; export type Outputs = Record; export declare const OUTPUT_PREVIEW_URL = "previewUrl"; export declare const OUTPUT_PENDING_DEPLOYMENT_UUID = "pendingDeploymentUuid"; export type ExecutorOpts = { draft?: boolean; }; export type Executors = { connector(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; model(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; agent(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; play(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; alert(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; tool(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; mcpServer(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; folder(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; file(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; customIntegration(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; worker(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; app(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; context(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; capacity(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; territory(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; member(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; segment(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; relationship(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; domain(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; mailbox(spec: Record, prior: StateEntry | undefined, opts?: ExecutorOpts): Promise; }; export type ApplyResult = { state: State; applied: PlanEntry[]; skipped: PlanEntry[]; }; export type ApplyProgress = { phase: "start" | "done"; id: string; change: "create" | "update"; index: number; total: number; }; /** * Execute a plan against `executors`, persisting state after every resource. * * `input.nodes` must already have been through `compileProject` (or at least * `bindHarnessRepositories`). `apply` recompiles from what it is handed and * does NOT bind: binding reads the git checkout, and `apply` takes nodes rather * than a directory, so it has nowhere to read one from. Handing it raw nodes * deploys harness agents with an unbound repository and writes a hash the next * `plan` reports as an update. The engine's `deploy` and the CLI both go * through `compileProject` for this reason. */ export declare function apply(input: CompileInput, executors: Executors, persist?: (state: State) => Promise, readers?: LiveReaders, onProgress?: (event: ApplyProgress) => void): Promise; //# sourceMappingURL=apply.d.ts.map