import type { LogContext } from '@rocicorp/logger';
import type { Enum } from '../../../shared/src/enum.ts';
import type { LazyStore } from '../dag/lazy-store.ts';
import type { Store } from '../dag/store.ts';
import * as FormatVersion from '../format-version-enum.ts';
import type { ClientID } from '../sync/ids.ts';
import type { MutatorDefs } from '../types.ts';
import type { ZeroOption } from '../replicache-options.ts';
type FormatVersion = Enum<typeof FormatVersion>;
/**
 * Persists the client's memdag state to the client's perdag client group.
 *
 * Persists the base snapshot from memdag to the client's perdag client group,
 * but only if it’s newer than the client's perdag client group’s base snapshot.
 * The base snapshot is persisted by gathering all memory-only chunks in the dag
 * subgraph rooted at the base snapshot's commit and writing them to the perdag.
 * Once the base snapshot is persisted, rebases onto this new base snapshot all
 * local commits from the client's perdag client group that are not already
 * reflected in the base snapshot.
 *
 * Whether or not the base snapshot is persisted, rebases onto the client's
 * perdag client group all memdag local commits not already in the client's
 * perdag client group's history.
 *
 * Also updates the `lastMutationIDs` and `lastServerAckdMutationIDs` properties
 * of the client's client group's entry in the `ClientGroupMap`.
 */
export declare function persistDD31(lc: LogContext, clientID: ClientID, memdag: LazyStore, perdag: Store, mutators: MutatorDefs, closed: () => boolean, formatVersion: FormatVersion, getZeroData: ZeroOption['getTxData'] | undefined, onGatherMemOnlyChunksForTest?: () => Promise<void>): Promise<void>;
export {};
//# sourceMappingURL=persist.d.ts.map