import type Database from 'better-sqlite3'; import type { DirtyLayer, DirtyReason, SyncDirtyEntry } from '../schema.js'; export declare class SyncDirtyRepository { private conn; constructor(conn: Database.Database); /** * Mark an entity as dirty for a given layer. * Uses INSERT OR REPLACE so re-marking with a different reason overwrites. */ markDirty(layer: DirtyLayer, entityId: number, reason: DirtyReason): void; /** * Mark multiple entities as dirty in a batch. * Callers must ensure this runs inside an existing transaction for performance. */ markDirtyBatch(entries: SyncDirtyEntry[]): void; /** * Get all dirty entries for a given layer. */ getDirty(layer: DirtyLayer): SyncDirtyEntry[]; /** * Get dirty entity IDs for a given layer. */ getDirtyIds(layer: DirtyLayer): number[]; /** * Drain (delete) all dirty entries for a given layer. * Call after the layer has been processed. */ drain(layer: DirtyLayer): number; /** * Clear all dirty entries across all layers. */ clear(): number; /** * Check if any dirty entries exist for a given layer. */ hasAny(layer: DirtyLayer): boolean; /** * Count dirty entries for a given layer. */ count(layer: DirtyLayer): number; /** * Count total dirty entries across all layers. */ countAll(): number; /** * Get a summary of dirty counts per layer. */ getSummary(): Record; } //# sourceMappingURL=sync-dirty-repository.d.ts.map