import { type ResolveVaultSnapshotResult, type VaultSnapshot } from "../registry/read-only-client.js"; import { type OpenReceiptAttemptResult } from "../op/receipt-attempt.js"; import { type ReceiptV1 } from "../op/receipt-v1.js"; import { type GitRunResult } from "../util/git-run.js"; import type { PermissionObservation } from "../util/permission-observation.js"; import { type LocalPodGitStateObservation } from "./federation/pod-git-state.js"; import { type PodRemoteStateObservation } from "./federation/pod-remote-state.js"; export declare const EDITOR_LOCALIZATION_PLAN_MAX_BYTES: number; export declare const EDITOR_LOCALIZATION_MACHINE_EVIDENCE_LABEL: "handler_declared_roster"; export type EditorLocalizationMachineReceiptV1 = Readonly<{ machine_id: string; disposition: "observed"; digest: string; count: number; observed_at: string; }> | Readonly<{ machine_id: string; disposition: "absent"; absence_receipt_digest: string; observed_at: string; }>; export interface EditorLocalizationMachineStateV1 { readonly machine_id: string; readonly state: "observed" | "absent" | "unavailable"; readonly digest: string | null; readonly count: number; } export type EditorLocalizationEligibilityReason = "target-unresolved" | "target-not-active" | "target-shared" | "target-subscribed" | "target-orphan" | "legacy-authority-ambiguous" | "origin-mismatch" | "workspace-dirty" | "workspace-staged" | "operation-in-progress" | "graph-ahead" | "graph-behind" | "graph-diverged" | "graph-detached" | "authority-unknown" | "remote-unavailable" | "reparse-point" | "observation-incomplete" | "machine-receipt-unavailable"; export type EditorLocalizationEligibility = Readonly<{ disposition: "eligible"; reason: null; }> | Readonly<{ disposition: "handler-approval-required"; reason: null; }> | Readonly<{ disposition: "apply-unavailable"; reason: "machine-receipt-unavailable"; }> | Readonly<{ disposition: "refused"; reason: EditorLocalizationEligibilityReason; }>; export interface EditorLocalizationMachineEvidenceV1 { readonly label: typeof EDITOR_LOCALIZATION_MACHINE_EVIDENCE_LABEL; readonly declared_count: number; readonly receipt_count: number; readonly machines: readonly EditorLocalizationMachineStateV1[]; readonly digest: string; } export interface EditorLocalizationBeforeV1 { readonly gitignore_present: boolean; readonly gitignore_size: number; readonly gitignore_digest: string; readonly tracked_editor_path_count: number; readonly tracked_editor_pathset_digest: string; readonly editor_tree_file_count: number; readonly editor_tree_size: number; readonly editor_tree_digest: string; } export interface EditorLocalizationPlanV1 { readonly schema: "lyt.editor-localization-plan"; readonly version: 1; readonly operation: "editor-localization-apply"; readonly target: Readonly<{ vault_id: string; canonical_name: string; path: string; status: VaultSnapshot["status"]; source: VaultSnapshot["source"]; home_mesh_id: string | null; destination_kind: VaultSnapshot["destination"]["kind"]; destination_source: VaultSnapshot["destination"]["source"]; destination_target: string | null; destination_target_kind: VaultSnapshot["destination"]["targetKind"]; destination_repository: string | null; git_url: string | null; }>; readonly git: Readonly<{ branch_ref: string | null; head_sha: string | null; upstream_ref: string | null; graph: LocalPodGitStateObservation["graph"]; remote: PodRemoteStateObservation["remote"] | null; remote_graph: PodRemoteStateObservation["graph"] | null; }>; readonly authority: Readonly<{ kind: "verified-push" | "local-no-origin" | "unknown"; repository: string | null; policy_epoch: number | null; }>; readonly machine_evidence: EditorLocalizationMachineEvidenceV1; readonly before: EditorLocalizationBeforeV1; readonly eligibility: EditorLocalizationEligibility; readonly plan_digest: string; } export interface PrepareEditorLocalizationArgs { readonly target: string; readonly declared_machines: readonly string[]; readonly machine_receipts: readonly EditorLocalizationMachineReceiptV1[]; readonly registry_path?: string; readonly plan_path?: string; } export type PrepareEditorLocalizationResult = Readonly<{ kind: "prepared"; plan: EditorLocalizationPlanV1; receipt: ReceiptV1; }> | Readonly<{ kind: "refused"; reason: EditorLocalizationEligibilityReason | "plan-output-unavailable" | "receipt-store-unavailable"; receipt?: ReceiptV1; }>; export type InspectEditorLocalizationResult = Readonly<{ kind: "prepared"; plan: EditorLocalizationPlanV1; }> | Readonly<{ kind: "refused"; reason: EditorLocalizationEligibilityReason; }>; export interface ObserveEditorLocalizationMachineReceiptArgs { readonly target: string; readonly machine_id: string; readonly registry_path?: string; } export type ObserveEditorLocalizationMachineReceiptResult = Readonly<{ kind: "observed"; receipt: EditorLocalizationMachineReceiptV1; }> | Readonly<{ kind: "refused"; reason: "target-unresolved" | "reparse-point" | "observation-incomplete"; }>; export interface ApplyEditorLocalizationArgs { readonly plan: unknown; readonly plan_digest: string; readonly declared_machines: readonly string[]; readonly machine_receipts: readonly EditorLocalizationMachineReceiptV1[]; readonly handler_approval?: Readonly<{ approved: true; plan_digest: string; }>; readonly registry_path?: string; } export declare function parseEditorLocalizationMachineReceiptV1(value: unknown): EditorLocalizationMachineReceiptV1; export declare function readEditorLocalizationMachineEvidenceFilesV1(declaredMachines: readonly string[], requestedPaths: readonly string[]): Pick; interface EditorLocalizationMachineReceiptObservationDependencies { resolveTarget(target: string, registryPath: string | undefined): Promise; now(): Date; } export declare function observeEditorLocalizationMachineReceiptV1(args: ObserveEditorLocalizationMachineReceiptArgs): Promise; export declare function observeEditorLocalizationMachineReceiptV1WithDependencies(args: ObserveEditorLocalizationMachineReceiptArgs, dependencies: EditorLocalizationMachineReceiptObservationDependencies): Promise; export declare function writeEditorLocalizationPlanFileV1(requestedPath: string, plan: EditorLocalizationPlanV1): string; export declare function readEditorLocalizationPlanFileV1(requestedPath: string): EditorLocalizationPlanV1; export interface EditorLocalizationGitRunner { read(args: readonly string[], options: { cwd: string; stdin?: Uint8Array; }): Promise; readRaw(args: readonly string[], options: { cwd: string; }): Promise; mutate(args: readonly string[], options: { cwd: string; stdin?: Uint8Array; }): Promise; } export interface EditorLocalizationObservedContext { target: ResolveVaultSnapshotResult; local: LocalPodGitStateObservation | null; remote: PodRemoteStateObservation | null; permission: PermissionObservation | null; policyEpoch: number | null; } export interface EditorLocalizationDependencies { observe(target: string, registryPath: string | undefined, attemptId: string): Promise; git: EditorLocalizationGitRunner; open(receipt: ReceiptV1): Promise; reopen(receipt: ReceiptV1): Promise; prepareProof(planDigest: string, vaultId: string): Promise; completedApply(operationId: string): Promise; findPending(operationId: string): Promise | null>; newAttemptId(): string; now(): Date; withLock(path: string, action: () => Promise): Promise; } export declare function parseEditorLocalizationPlanV1(value: unknown): EditorLocalizationPlanV1; export declare function prepareEditorLocalizationPlanV1(args: PrepareEditorLocalizationArgs): Promise; export declare function inspectEditorLocalizationV1(args: PrepareEditorLocalizationArgs): Promise; export declare function prepareEditorLocalizationPlanV1WithDependencies(args: PrepareEditorLocalizationArgs, dependencies: EditorLocalizationDependencies): Promise; export declare function inspectEditorLocalizationV1WithDependencies(args: PrepareEditorLocalizationArgs, dependencies: EditorLocalizationDependencies): Promise; export declare function applyEditorLocalizationPlanV1(args: ApplyEditorLocalizationArgs): Promise; export declare function applyEditorLocalizationPlanV1WithDependencies(args: ApplyEditorLocalizationArgs, dependencies: EditorLocalizationDependencies): Promise; export {}; //# sourceMappingURL=editor-localization.d.ts.map