export interface MetadataSnapshot { revision: number; metadata: T; path: string; } export interface MetadataMutationOptions { allowCreate?: boolean; validate?: (value: unknown) => T; beforePublish?: () => void | Promise; } export function readLatestMetadataSnapshot( directory: string, validate?: (value: unknown) => T, ): Promise>; export function mutateMetadataSnapshots( directory: string, mutate: (current: T | undefined) => T | undefined | Promise, options?: MetadataMutationOptions, ): Promise>; export function renameWithRetry(from: string, to: string): Promise;