import { Diff, Findings } from '../core/index.js'; import { OrgClient } from './adapters/index.js'; import { Resolution } from './resolution.js'; /** What every plan reports, however it ended, so the caller can set the exit code. */ type PlannedFiles = { files: string[]; findings: Findings; diff: Diff; }; /** * A plan, discriminated by status so that only a plan the org answered carries the * Resolution. Apply needs the resolved ids to insert with, and the discriminant is what * proves it can reach them only on the path where every reference did resolve. */ type PlanResult = (PlannedFiles & { status: 'invalid'; }) | (PlannedFiles & { status: 'planned'; resolution: Resolution; }); /** The per-run switches a plan takes. Both are off by default, matching the flags. */ type PlanInput = { strict?: boolean; includeInactive?: boolean; }; /** * Read-only preview: load the files, resolve every reference to an org id, fetch the * current state, and diff. The whole diff comes back, adds and would-be removes alike: * narrowing it to a mode is the caller's call, through Diff.scopeTo. Never changes the * org. This is the apply pipeline stopping before any DML. */ export declare class PlanService { private readonly org; constructor(org: OrgClient); run(files: string[], input?: PlanInput): Promise; } export {}; //# sourceMappingURL=plan.d.ts.map