/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Directory } from "../../fs/Directory.js";
import { type SupportedStorageTypes } from "../StringifyTools.js";
import type { StoreData, WalCommitId } from "./WalCommit.js";
/**
 * An immutable snapshot of WAL storage state at a specific point in history.
 *
 * Provides synchronous query methods for programmatic access and persistence methods for disk I/O.
 */
export declare class WalSnapshot {
    readonly commitId: WalCommitId;
    readonly ts: number;
    readonly data: StoreData;
    constructor(commitId: WalCommitId, ts: number, data: StoreData);
    /**
     * Get a single value.
     */
    get(contexts: string[], key: string): SupportedStorageTypes | undefined;
    /**
     * Get all keys in a context.
     */
    keys(contexts: string[]): string[];
    /**
     * Get all values in a context.
     */
    values(contexts: string[]): Record<string, SupportedStorageTypes>;
    /**
     * Get sub-contexts under the given context prefix.
     */
    contexts(contexts: string[]): string[];
    /**
     * Write this snapshot to disk (atomic via write+rename).
     */
    save(dir: Directory, options?: {
        compress?: boolean;
        basename?: string;
    }): Promise<void>;
    /**
     * Load an existing snapshot from disk, auto-detecting the format.
     */
    static load(dir: Directory, options?: {
        basename?: string;
    }): Promise<WalSnapshot | undefined>;
}
//# sourceMappingURL=WalSnapshot.d.ts.map