import { SchemaReadJob, SchemaUpdateJob } from '../openapi/openApiTypes.js'; import { PatchClassification, JobBackend, JobPatch } from './job-patch.js'; import { GreprApiClient } from './grepr-api-client.js'; export declare const PLAN_SCHEMA_VERSION: 2; export interface JobPlan { schemaVersion: typeof PLAN_SCHEMA_VERSION; jobId: string; /** Which substrate the patch targets; recorded so `job:draft`/`job:apply` needn't re-detect. */ backend: JobBackend; baseVersion: number; fetchedAt: string; /** What the patch touches; used to pick the validation path. */ classification: PatchClassification; patch: JobPatch; current: SchemaReadJob; proposed: SchemaUpdateJob; diff: JobDiffEntry[]; } export interface JobDiffEntry { kind: 'add' | 'remove' | 'change'; /** Human-readable path, e.g. "log_attributes_remapper.messageReservedAttributes". */ path: string; before?: unknown; after?: unknown; /** One-line description for printing. */ summary: string; } /** Fetch the live job, apply the patch, and produce a plan. */ export declare function generatePlan(apiClient: GreprApiClient, jobId: string, patch: JobPatch): Promise; /** * Compute a diff between current and proposed configs. Template-backed: diffs at * template-input granularity (parsers/sources/sinks/transforms/reducer/exceptions/ * scalars). Job-graph: diffs per resolved vertex (by name) and per edge. */ export declare function computeDiff(current: SchemaReadJob, proposed: SchemaUpdateJob): JobDiffEntry[]; /** Render a diff for humans (`job:plan --dry-run`, or the `job:apply` confirmation preamble). */ export declare function renderDiffHuman(diff: JobDiffEntry[], useColor?: boolean): string; export declare function loadPlanFromFile(path: string): Promise; export declare function parsePlan(raw: unknown): JobPlan; //# sourceMappingURL=job-plan.d.ts.map