import type { NoydbPodStore } from '../../kernel/types.js'; import type { Vault } from '../../kernel/vault.js'; import type { SnapshotMeta, RetentionPolicy, SnapshotIndex } from './strategy.js'; export declare class SnapshotEngine { private readonly store; private readonly retention; constructor(store: NoydbPodStore, retention: RetentionPolicy); private indexKey; private snapKey; private autoKey; private readIndex; private writeIndex; snapshot(vault: Vault, by: string, opts?: { label?: string; note?: string; }): Promise; /** * Rolling auto-snapshot. Overwrites the single fixed `__auto` key and * stores its meta in `index.auto`, separate from the immutable `snapshots` * pool — retention never prunes it. Used by the cadence scheduler. */ autoSnapshot(vault: Vault, by: string, opts?: { label?: string; note?: string; }): Promise; listSnapshots(vaultId: string): Promise; restoreSnapshot(vault: Vault, version: string): Promise; /** * Applies the configured retention policy to `index`, mutating `index.snapshots` * in place and returning the blob keys that should be deleted from the store. * Called by `snapshot()` before the index is written. * * @internal — public for direct testing only */ applyRetention(index: SnapshotIndex): string[]; }