@serve.zone/interfaces 32.14.0 → 32.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,8 @@ import type { TSha256Digest } from './immutableimage.js';
2
2
  import type { IClusterRuntimeReference, TClusterRuntimePhase } from './clusterruntime.js';
3
3
  import type { IRuntimeAssignmentReference, IRuntimeAuthorityReference } from './runtimeassignment.js';
4
4
  import type { IRuntimeSessionBinding } from './runtimesession.js';
5
+ import type { IRuntimeStorageClaim, IRuntimeStorageClaimIntent } from './runtimestorageclaim.js';
6
+ import type { IAppStoreFilesystemStorageRequest } from '../appstore/types.js';
5
7
  import type { ISecretVersionReference } from './secret.js';
6
8
  /**
7
9
  * A server-owned accepted record reference. It contains no bearer, secret, or proof boolean.
@@ -33,6 +35,33 @@ export interface IFleetCutoverMountTargetIdentityInput {
33
35
  /** Docker Engine Mount.Destination exact UTF-8 bytes; never normalize. */
34
36
  target: string;
35
37
  }
38
+ export interface IFleetCutoverDockerMountInput {
39
+ /** Raw Docker mount type. Unsupported values produce an explicit unknown descriptor. */
40
+ type: string;
41
+ /** Exact source bytes from the Docker object being described; never substitute another field. */
42
+ source: string;
43
+ /** Exact container target bytes from the Docker object being described. */
44
+ target: string;
45
+ readOnly: boolean;
46
+ }
47
+ /**
48
+ * Value-free correlation between one local physical mount and its service-spec mount identity.
49
+ * The two identities stay distinct: a Docker volume's local Source is a host path while its
50
+ * service Source and local Name are the logical volume name.
51
+ */
52
+ export interface IFleetCutoverPhysicalMountCorrelation {
53
+ physicalMountIdentityDigest: TSha256Digest;
54
+ serviceMountIdentityDigest: TSha256Digest;
55
+ correlationIdentityDigest: TSha256Digest;
56
+ }
57
+ export interface IFleetCutoverPhysicalMountEvidence {
58
+ mount: IFleetCutoverMountDescriptor;
59
+ correlation: IFleetCutoverPhysicalMountCorrelation;
60
+ }
61
+ export interface IFleetCutoverDockerConstraintSetIdentity {
62
+ constraintCount: number;
63
+ constraintSetDigest: TSha256Digest;
64
+ }
36
65
  export type TFleetCutoverDockerTaskState = 'new' | 'allocated' | 'pending' | 'assigned' | 'accepted' | 'preparing' | 'ready' | 'starting' | 'running' | 'complete' | 'shutdown' | 'failed' | 'rejected' | 'remove' | 'orphaned';
37
66
  export type TFleetCutoverDockerDesiredState = TFleetCutoverDockerTaskState;
38
67
  export type TFleetCutoverDockerServiceMode = {
@@ -81,6 +110,11 @@ export interface IFleetCutoverPhysicalContainer {
81
110
  imageId: TSha256Digest;
82
111
  serviceIdLabel: string | null;
83
112
  mounts: IFleetCutoverMountDescriptor[];
113
+ /**
114
+ * Optional only for compatibility with observations predating correlation evidence. When
115
+ * present it is a complete one-to-one mapping of mounts. Absence establishes no mount join.
116
+ */
117
+ mountCorrelations?: IFleetCutoverPhysicalMountCorrelation[];
84
118
  }
85
119
  export interface IFleetCutoverContainerSetIdentity {
86
120
  containerCount: number;
@@ -210,6 +244,97 @@ export interface IFleetCutoverVolumeHandoffIntent {
210
244
  acceptedAt: number;
211
245
  digest: TSha256Digest;
212
246
  }
247
+ export interface IFleetCutoverPersistentVolumeMountDescriptor extends IFleetCutoverMountDescriptor {
248
+ type: 'volume';
249
+ classification: 'persistent-volume';
250
+ readOnly: false;
251
+ }
252
+ /**
253
+ * Cloudly-owned desired handoff prepared from authenticated legacy observations. Observed Docker
254
+ * source identity is not physical storage lineage; Corestore proves lineage later under the held
255
+ * native attachment fence.
256
+ */
257
+ export interface IFleetCutoverPreparedVolumeHandoffIntent {
258
+ id: string;
259
+ generation: number;
260
+ clusterId: string;
261
+ nodeId: string;
262
+ serviceId: string;
263
+ volumeId: string;
264
+ observedMount: IFleetCutoverPersistentVolumeMountDescriptor;
265
+ claimIntent: IRuntimeStorageClaimIntent;
266
+ runtime: IClusterRuntimeReference & {
267
+ phase: 'draining';
268
+ };
269
+ scope: IFleetCutoverAcceptedEvidenceReference;
270
+ targetSet: IFleetCutoverTargetSetReference;
271
+ legacyStorageEvidence: IFleetCutoverAcceptedEvidenceReference;
272
+ sourceNodeObservation: IFleetCutoverAcceptedEvidenceReference;
273
+ acceptedAt: number;
274
+ digest: TSha256Digest;
275
+ }
276
+ export interface IFleetCutoverPreparedVolumeHandoffUpsert {
277
+ nodeId: string;
278
+ serviceId: string;
279
+ mountIdentityDigest: TSha256Digest;
280
+ request: IAppStoreFilesystemStorageRequest & {
281
+ accessMode: 'ReadWriteOnce';
282
+ reclaimPolicy: 'retain';
283
+ };
284
+ }
285
+ /** One bounded CAS mutation; the durable aggregate may contain many such 32-entry batches. */
286
+ export interface IFleetCutoverPreparedVolumeHandoffMutation {
287
+ mutationId: string;
288
+ clusterId: string;
289
+ currentRuntime: IClusterRuntimeReference & {
290
+ phase: 'draining';
291
+ };
292
+ scope: IFleetCutoverAcceptedEvidenceReference;
293
+ targetSet: IFleetCutoverTargetSetReference;
294
+ expectedAggregate: IFleetCutoverAcceptedEvidenceReference | null;
295
+ upserts: IFleetCutoverPreparedVolumeHandoffUpsert[];
296
+ removals: IFleetCutoverAcceptedEvidenceReference[];
297
+ }
298
+ /**
299
+ * Revisioned header for one complete expected set. It intentionally contains no page references:
300
+ * immutable pages bind back to this exact revision, avoiding an aggregate/page digest cycle.
301
+ */
302
+ export interface IFleetCutoverPreparedVolumeHandoffAggregate {
303
+ id: string;
304
+ generation: number;
305
+ previous: IFleetCutoverAcceptedEvidenceReference | null;
306
+ clusterId: string;
307
+ runtime: IClusterRuntimeReference & {
308
+ phase: 'draining';
309
+ };
310
+ scope: IFleetCutoverAcceptedEvidenceReference;
311
+ targetSet: IFleetCutoverTargetSetReference;
312
+ state: 'incomplete' | 'complete';
313
+ requiredHandoffCount: number;
314
+ handoffCount: number;
315
+ pageCount: number;
316
+ handoffSetDigest: TSha256Digest;
317
+ acceptedAt: number;
318
+ digest: TSha256Digest;
319
+ }
320
+ /** One immutable 1..32-entry page pinned to one aggregate revision. */
321
+ export interface IFleetCutoverPreparedVolumeHandoffPage {
322
+ id: string;
323
+ generation: 1;
324
+ aggregate: IFleetCutoverAcceptedEvidenceReference;
325
+ pageIndex: number;
326
+ handoffs: IFleetCutoverPreparedVolumeHandoffPageReference[];
327
+ handoffSetPageDigest: TSha256Digest;
328
+ digest: TSha256Digest;
329
+ }
330
+ /** Immutable page membership commits both the handoff revision and its owning physical node. */
331
+ export interface IFleetCutoverPreparedVolumeHandoffPageReference extends IFleetCutoverAcceptedEvidenceReference {
332
+ nodeId: string;
333
+ }
334
+ export interface IFleetCutoverPreparedVolumeHandoffPageSetEntry {
335
+ pageIndex: number;
336
+ handoffSetPageDigest: TSha256Digest;
337
+ }
213
338
  interface IFleetCutoverVolumeFenceBase {
214
339
  id: string;
215
340
  generation: number;
@@ -258,6 +383,43 @@ export interface IFleetCutoverCorestoreAdoptionReceipt {
258
383
  acceptedAt: number;
259
384
  digest: TSha256Digest;
260
385
  }
386
+ /** Current-session Cloudly grant for one post-Pallet adoption attempt. */
387
+ export interface IFleetCutoverStorageAdoptionGrant {
388
+ id: string;
389
+ generation: number;
390
+ previous: IFleetCutoverAcceptedEvidenceReference | null;
391
+ clusterId: string;
392
+ nodeId: string;
393
+ serviceId: string;
394
+ volumeId: string;
395
+ observedMount: IFleetCutoverPersistentVolumeMountDescriptor;
396
+ runtime: IClusterRuntimeReference & {
397
+ phase: 'pallet';
398
+ };
399
+ session: IRuntimeSessionBinding;
400
+ handoffIntent: IFleetCutoverAcceptedEvidenceReference;
401
+ palletFence: IFleetCutoverAcceptedEvidenceReference;
402
+ acceptedAt: number;
403
+ digest: TSha256Digest;
404
+ }
405
+ /** Exact result Pallet persists only after revalidating the current grant following adoption. */
406
+ export interface IFleetCutoverStorageAdoptionBundle {
407
+ grant: IFleetCutoverStorageAdoptionGrant;
408
+ fence: Extract<TFleetCutoverVolumeFence, {
409
+ state: 'consumed';
410
+ }>;
411
+ adoption: IFleetCutoverCorestoreAdoptionReceipt;
412
+ claim: IRuntimeStorageClaim;
413
+ }
414
+ /** One authenticated Spark reporter's complete bounded subset of a full immutable aggregate page. */
415
+ export interface IFleetCutoverHeldVolumeFenceEvidencePage {
416
+ aggregate: IFleetCutoverAcceptedEvidenceReference;
417
+ page: IFleetCutoverPreparedVolumeHandoffPage;
418
+ nodeId: string;
419
+ fences: Extract<TFleetCutoverVolumeFence, {
420
+ state: 'held';
421
+ }>[];
422
+ }
261
423
  export interface IFleetCutoverCoreflowRetirementEvidence {
262
424
  id: string;
263
425
  generation: number;
@@ -424,19 +586,36 @@ export declare const fleetCutoverContract: Readonly<{
424
586
  readonly maximumNodes: 1024;
425
587
  readonly maximumContainersPerNode: 512;
426
588
  readonly maximumMountsPerOwner: 32;
589
+ readonly maximumConstraintsPerService: 256;
590
+ readonly maximumDockerTextBytes: 4096;
591
+ readonly maximumDockerServiceSpecCanonicalBytes: 1048576;
592
+ readonly maximumPreparedVolumeHandoffMutationEntries: 32;
593
+ /** Every admitted task has one node placement and at most 32 mounts: 4096 * 32. */
594
+ readonly maximumPreparedVolumeHandoffs: number;
595
+ readonly maximumPreparedVolumeHandoffPages: number;
596
+ readonly maximumHeldVolumeFenceEvidenceBytes: 131072;
427
597
  readonly maximumClassifications: 512;
428
598
  readonly observationFreshnessMs: 300000;
429
599
  readonly mountSourceIdentityDigestDomain: "serve.zone/fleet-cutover-mount-source-identity";
430
600
  readonly mountTargetIdentityDigestDomain: "serve.zone/fleet-cutover-mount-target-identity";
431
601
  readonly mountIdentityDigestDomain: "serve.zone/fleet-cutover-mount-identity";
602
+ readonly mountCorrelationIdentityDigestDomain: "serve.zone/fleet-cutover-mount-correlation-identity";
603
+ readonly dockerServiceSpecDigestDomain: "serve.zone/fleet-cutover-docker-service-spec";
604
+ readonly dockerConstraintSetDigestDomain: "serve.zone/fleet-cutover-docker-constraint-set";
432
605
  readonly containerSetIdentityDigestDomain: "serve.zone/fleet-cutover-container-set-identity";
433
606
  readonly localNodeSnapshotDigestDomain: "serve.zone/fleet-cutover-local-node-snapshot";
434
607
  readonly managerSnapshotDigestDomain: "serve.zone/fleet-cutover-manager-snapshot";
435
608
  readonly censusDigestDomain: "serve.zone/fleet-cutover-census";
436
609
  readonly scopeDigestDomain: "serve.zone/fleet-cutover-scope";
437
610
  readonly volumeHandoffDigestDomain: "serve.zone/fleet-cutover-volume-handoff";
611
+ readonly preparedVolumeHandoffDigestDomain: "serve.zone/fleet-cutover-prepared-volume-handoff";
612
+ readonly preparedVolumeHandoffAggregateDigestDomain: "serve.zone/fleet-cutover-prepared-volume-handoff-aggregate";
613
+ readonly preparedVolumeHandoffPageContentDigestDomain: "serve.zone/fleet-cutover-prepared-volume-handoff-page-content";
614
+ readonly preparedVolumeHandoffPageDigestDomain: "serve.zone/fleet-cutover-prepared-volume-handoff-page";
615
+ readonly preparedVolumeHandoffSetDigestDomain: "serve.zone/fleet-cutover-prepared-volume-handoff-set";
438
616
  readonly volumeFenceDigestDomain: "serve.zone/fleet-cutover-volume-fence";
439
617
  readonly corestoreAdoptionDigestDomain: "serve.zone/fleet-cutover-corestore-adoption";
618
+ readonly storageAdoptionGrantDigestDomain: "serve.zone/fleet-cutover-storage-adoption-grant";
440
619
  readonly coreflowRetirementDigestDomain: "serve.zone/fleet-cutover-coreflow-retirement";
441
620
  readonly ingressDesignationDigestDomain: "serve.zone/fleet-cutover-ingress-designation";
442
621
  readonly ingressAuthorityDigestDomain: "serve.zone/fleet-cutover-ingress-authority";
@@ -447,9 +626,36 @@ export declare const fleetCutoverContract: Readonly<{
447
626
  pallet: null;
448
627
  }>;
449
628
  }>;
629
+ /** Docker labels with established historical producer semantics. */
630
+ export declare const fleetCutoverDockerLabelNames: Readonly<{
631
+ readonly serviceId: "serve.zone.serviceId";
632
+ }>;
633
+ /**
634
+ * Hash the complete open-schema Docker Service.Spec object. Unknown response properties are
635
+ * intentionally included: this helper returns only the digest and never a retained projection.
636
+ */
637
+ export declare const computeFleetCutoverDockerServiceSpecDigest: (valueArg: unknown) => Promise<TSha256Digest>;
638
+ /** Sort exact constraint strings while preserving duplicate entries, then return value-free identity. */
639
+ export declare const computeFleetCutoverDockerConstraintSetIdentity: (valueArg: unknown) => Promise<IFleetCutoverDockerConstraintSetIdentity>;
640
+ export declare const snapshotFleetCutoverDockerDesiredTaskCount: (valueArg: unknown) => number;
641
+ export declare const validateFleetCutoverDockerDesiredTaskCount: (valueArg: unknown) => string[];
642
+ /** Apply only the documented exact cutover mount classifications; no path normalization occurs. */
643
+ export declare const classifyFleetCutoverDockerMount: (valueArg: IFleetCutoverDockerMountInput) => Pick<IFleetCutoverMountDescriptor, "type" | "classification">;
644
+ export declare const createFleetCutoverMountDescriptor: (valueArg: IFleetCutoverDockerMountInput) => Promise<IFleetCutoverMountDescriptor>;
645
+ /** Read only consumed Service.Spec Mount fields; future Docker response properties are ignored. */
646
+ export declare const createFleetCutoverDockerServiceMountDescriptor: (valueArg: unknown) => Promise<IFleetCutoverMountDescriptor>;
647
+ /** Read only consumed local MountPoint fields and retain the exact physical Source identity. */
648
+ export declare const createFleetCutoverDockerLocalMountDescriptor: (valueArg: unknown) => Promise<IFleetCutoverMountDescriptor>;
450
649
  export declare const computeFleetCutoverMountSourceIdentityDigest: (valueArg: IFleetCutoverMountSourceIdentityInput) => Promise<TSha256Digest>;
451
650
  export declare const computeFleetCutoverMountTargetIdentityDigest: (valueArg: IFleetCutoverMountTargetIdentityInput) => Promise<TSha256Digest>;
452
651
  export declare const computeFleetCutoverMountIdentityDigest: (valueArg: Omit<IFleetCutoverMountDescriptor, "mountIdentityDigest">) => Promise<TSha256Digest>;
652
+ export declare const computeFleetCutoverMountCorrelationIdentityDigest: (valueArg: Omit<IFleetCutoverPhysicalMountCorrelation, "correlationIdentityDigest">) => Promise<TSha256Digest>;
653
+ /**
654
+ * Produce both the exact local physical descriptor and its logical service-mount correlation.
655
+ * For a volume only MountPoint.Name supplies the logical source. Unknown types and a missing or
656
+ * empty volume Name are refused because they cannot establish a truthful service join.
657
+ */
658
+ export declare const createFleetCutoverDockerPhysicalMountEvidence: (valueArg: unknown) => Promise<IFleetCutoverPhysicalMountEvidence>;
453
659
  export declare const computeFleetCutoverContainerSetIdentityDigest: (containerIdsArg: string[]) => Promise<TSha256Digest>;
454
660
  export declare const snapshotFleetCutoverLocalNodeSnapshot: (valueArg: unknown) => IFleetCutoverLocalNodeSnapshot;
455
661
  export declare const computeFleetCutoverLocalNodeSnapshotDigest: (valueArg: unknown) => Promise<TSha256Digest>;
@@ -467,6 +673,12 @@ export declare const fleetCutoverEvidenceReferenceOf: (valueArg: {
467
673
  generation: number;
468
674
  digest: TSha256Digest;
469
675
  }) => IFleetCutoverAcceptedEvidenceReference;
676
+ export declare const fleetCutoverPreparedVolumeHandoffPageReferenceOf: (valueArg: {
677
+ id: string;
678
+ generation: number;
679
+ digest: TSha256Digest;
680
+ nodeId: string;
681
+ }) => IFleetCutoverPreparedVolumeHandoffPageReference;
470
682
  export declare const snapshotFleetCutoverAcceptedEvidenceReference: (valueArg: unknown) => IFleetCutoverAcceptedEvidenceReference;
471
683
  export declare const snapshotFleetCutoverScope: (valueArg: unknown) => IFleetCutoverScope;
472
684
  export declare const computeFleetCutoverScopeDigest: (valueArg: unknown) => Promise<TSha256Digest>;
@@ -475,6 +687,26 @@ export declare const snapshotFleetCutoverScopeClassificationRequest: (valueArg:
475
687
  export declare const snapshotFleetCutoverTargetSetReference: (valueArg: unknown) => IFleetCutoverTargetSetReference;
476
688
  export declare const snapshotFleetCutoverVolumeHandoffIntent: (valueArg: unknown) => IFleetCutoverVolumeHandoffIntent;
477
689
  export declare const computeFleetCutoverVolumeHandoffDigest: (valueArg: unknown) => Promise<TSha256Digest>;
690
+ export declare const snapshotFleetCutoverPreparedVolumeHandoffIntent: (valueArg: unknown) => IFleetCutoverPreparedVolumeHandoffIntent;
691
+ export declare const computeFleetCutoverPreparedVolumeHandoffDigest: (valueArg: unknown) => Promise<TSha256Digest>;
692
+ export declare const validateFleetCutoverPreparedVolumeHandoffIntent: (valueArg: unknown) => Promise<string[]>;
693
+ export declare const snapshotFleetCutoverPreparedVolumeHandoffMutation: (valueArg: unknown) => IFleetCutoverPreparedVolumeHandoffMutation;
694
+ export declare const snapshotFleetCutoverPreparedVolumeHandoffAggregate: (valueArg: unknown) => IFleetCutoverPreparedVolumeHandoffAggregate;
695
+ export declare const computeFleetCutoverPreparedVolumeHandoffAggregateDigest: (valueArg: unknown) => Promise<TSha256Digest>;
696
+ export declare const validateFleetCutoverPreparedVolumeHandoffAggregate: (valueArg: unknown) => Promise<string[]>;
697
+ export declare const snapshotFleetCutoverPreparedVolumeHandoffPage: (valueArg: unknown) => IFleetCutoverPreparedVolumeHandoffPage;
698
+ export declare const computeFleetCutoverPreparedVolumeHandoffPageContentDigest: (pageIndexArg: unknown, handoffsArg: unknown) => Promise<TSha256Digest>;
699
+ export declare const computeFleetCutoverPreparedVolumeHandoffPageDigest: (valueArg: unknown) => Promise<TSha256Digest>;
700
+ export declare const validateFleetCutoverPreparedVolumeHandoffPage: (valueArg: unknown) => Promise<string[]>;
701
+ export declare const computeFleetCutoverPreparedVolumeHandoffSetDigest: (entriesArg: unknown) => Promise<TSha256Digest>;
702
+ /**
703
+ * Full pinned-set proof. The caller must supply every page for the exact aggregate revision; a
704
+ * node-local subset or a mixed revision can never satisfy this binder.
705
+ */
706
+ export declare const bindFleetCutoverPreparedVolumeHandoffPages: (aggregateArg: unknown, pagesArg: unknown) => Promise<{
707
+ aggregate: IFleetCutoverPreparedVolumeHandoffAggregate;
708
+ pages: IFleetCutoverPreparedVolumeHandoffPage[];
709
+ }>;
478
710
  export declare const snapshotFleetCutoverVolumeFence: (valueArg: unknown) => TFleetCutoverVolumeFence;
479
711
  export declare const computeFleetCutoverVolumeFenceDigest: (valueArg: unknown) => Promise<TSha256Digest>;
480
712
  export declare const snapshotFleetCutoverCorestoreAdoptionReceipt: (valueArg: unknown) => IFleetCutoverCorestoreAdoptionReceipt;
@@ -484,9 +716,40 @@ export declare const bindFleetCutoverAdoptionToVolumeFence: (adoptionArg: unknow
484
716
  adoption: IFleetCutoverCorestoreAdoptionReceipt;
485
717
  fence: TFleetCutoverVolumeFence;
486
718
  };
719
+ /**
720
+ * Joins the accepted adoption result to the full handoff and provider-ready claim content.
721
+ * Native attachment fencing and accepted-record dereferencing remain owner checks.
722
+ */
723
+ export declare const bindFleetCutoverAdoptionToStorageClaim: (adoptionArg: unknown, handoffArg: unknown, claimArg: unknown) => Promise<{
724
+ adoption: IFleetCutoverCorestoreAdoptionReceipt;
725
+ handoff: IFleetCutoverPreparedVolumeHandoffIntent;
726
+ claim: IRuntimeStorageClaim;
727
+ }>;
487
728
  export declare const validateFleetCutoverVolumeHandoffIntent: (valueArg: unknown) => Promise<string[]>;
488
729
  export declare const validateFleetCutoverVolumeFence: (valueArg: unknown) => Promise<string[]>;
489
730
  export declare const validateFleetCutoverCorestoreAdoptionReceipt: (valueArg: unknown) => Promise<string[]>;
731
+ export declare const snapshotFleetCutoverStorageAdoptionGrant: (valueArg: unknown) => IFleetCutoverStorageAdoptionGrant;
732
+ export declare const computeFleetCutoverStorageAdoptionGrantDigest: (valueArg: unknown) => Promise<TSha256Digest>;
733
+ export declare const validateFleetCutoverStorageAdoptionGrant: (valueArg: unknown) => Promise<string[]>;
734
+ /** Content join only; the controller must still prove this is the live current session and phase. */
735
+ export declare const bindFleetCutoverStorageAdoptionGrant: (grantArg: unknown, handoffArg: unknown, heldFenceArg: unknown) => Promise<{
736
+ grant: IFleetCutoverStorageAdoptionGrant;
737
+ handoff: IFleetCutoverPreparedVolumeHandoffIntent;
738
+ fence: Extract<TFleetCutoverVolumeFence, {
739
+ state: "held";
740
+ }>;
741
+ }>;
742
+ export declare const snapshotFleetCutoverStorageAdoptionBundle: (valueArg: unknown) => IFleetCutoverStorageAdoptionBundle;
743
+ /**
744
+ * Binds the complete post-adoption content. Physical lineage remains the provider-produced
745
+ * adoption digest and is deliberately never equated to the observed Docker source identity.
746
+ */
747
+ export declare const bindFleetCutoverStorageAdoptionBundle: (valueArg: unknown, handoffArg: unknown) => Promise<{
748
+ bundle: IFleetCutoverStorageAdoptionBundle;
749
+ handoff: IFleetCutoverPreparedVolumeHandoffIntent;
750
+ }>;
751
+ export declare const snapshotFleetCutoverHeldVolumeFenceEvidencePage: (valueArg: unknown) => IFleetCutoverHeldVolumeFenceEvidencePage;
752
+ export declare const validateFleetCutoverHeldVolumeFenceEvidencePage: (valueArg: unknown) => Promise<string[]>;
490
753
  export declare const snapshotFleetCutoverCoreflowRetirementEvidence: (valueArg: unknown) => IFleetCutoverCoreflowRetirementEvidence;
491
754
  export declare const computeFleetCutoverCoreflowRetirementDigest: (valueArg: unknown) => Promise<TSha256Digest>;
492
755
  export declare const validateFleetCutoverCoreflowRetirementEvidence: (valueArg: unknown) => Promise<string[]>;