import type { Cli } from "../internals/clis.js"; import { type ExecAction, type PlanContext } from "../internals/plan.js"; export interface EccReconcileExpectedRead { path: string; sha256: string; } export interface EccReconcileRemoveFileMutation { kind: "remove-file"; phase?: "owned-removal" | "target-state"; path: string; root: string; } export interface EccReconcileWriteFileMutation { kind: "write-file"; phase?: "owned-removal" | "target-state"; path: string; root: string; contents: string; mode?: number; } export interface EccReconcileRemoveJsonSubsetMutation { kind: "remove-json-subset"; phase?: "owned-removal" | "target-state"; path: string; root: string; payloads: unknown[]; } export interface EccReconcileFilterCodexMcpMutation { kind: "filter-codex-mcp-block"; phase?: "owned-removal" | "target-state"; path: string; root: string; keepNames: string[]; } export interface EccReconcileFilterCodexAgentsMutation { kind: "filter-codex-agents-block"; phase?: "owned-removal" | "target-state"; path: string; root: string; keepSkills: string[]; removeBlock: boolean; } export type EccReconcileMutation = EccReconcileFilterCodexAgentsMutation | EccReconcileFilterCodexMcpMutation | EccReconcileRemoveFileMutation | EccReconcileWriteFileMutation | EccReconcileRemoveJsonSubsetMutation; export interface EccReconcileLedgerWrite { path: string; root: string; contents: string; mode?: number; } export interface EccReconcileTransactionPayload { reads: EccReconcileExpectedRead[]; mutations: EccReconcileMutation[]; uninstalls?: EccReconcileUpstreamUninstall[]; ledger: EccReconcileLedgerWrite; } export interface EccReconcileUpstreamUninstall { target: Cli; argv: string[]; cwd?: string; paths: string[]; } export declare function eccReconcileTransactionAction(ctx: PlanContext, payload: EccReconcileTransactionPayload): ExecAction;