import type { ProgramNode } from '../ast/nodes.js'; export type DiffChange = { kind: 'block-added'; name: string; } | { kind: 'block-removed'; name: string; } | { kind: 'block-changed'; name: string; fields: FieldChange[]; } | { kind: 'dashboard-added'; title: string; } | { kind: 'dashboard-removed'; title: string; } | { kind: 'dashboard-changed'; title: string; fields: FieldChange[]; } | { kind: 'workbook-added'; title: string; } | { kind: 'workbook-removed'; title: string; } | { kind: 'workbook-changed'; title: string; fields: FieldChange[]; } | { kind: 'cell-added'; id: string; cellType: string; name?: string; } | { kind: 'cell-removed'; id: string; cellType: string; name?: string; } | { kind: 'cell-changed'; id: string; name?: string; fields: FieldChange[]; } | { kind: 'notebook-changed'; fields: FieldChange[]; }; export interface FieldChange { path: string; before: string | null; after: string | null; } export interface DiffReport { changes: DiffChange[]; /** True when `before` and `after` are semantically identical at the AST level. */ identical: boolean; } export declare function diffDQL(beforeSource: string, afterSource: string): DiffReport; export declare function diffNotebook(beforeSource: string | null, afterSource: string | null): DiffReport; export declare function diffProgram(before: ProgramNode, after: ProgramNode): DiffReport; export declare function renderDiffText(report: DiffReport): string; //# sourceMappingURL=diff.d.ts.map