import { Effect } from "effect";
import type { SyncResource } from "../sync.js";
import { DdfDatabase } from "./layer.js";
import type { DdfWatermarkScope } from "./schema.js";
declare const DdfDatabaseWatermarkError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "DdfDatabaseWatermarkError";
} & Readonly;
export declare class DdfDatabaseWatermarkError extends DdfDatabaseWatermarkError_base<{
readonly resource: SyncResource;
readonly operation: "load" | "save";
readonly cause: unknown;
}> {
get message(): string;
}
export declare const processedReplicationStreamCursorKind: "processed_replication_stream";
export declare const watermarkScopeHash: (scope?: DdfWatermarkScope) => string;
export declare const loadDatabaseWatermark: (resource: "Destination" | "Member" | "Office" | "OpenHouse" | "Property", scope?: DdfWatermarkScope | undefined) => Effect.Effect;
export declare const saveDatabaseWatermark: (resource: "Destination" | "Member" | "Office" | "OpenHouse" | "Property", watermark: string, scope?: DdfWatermarkScope | undefined) => Effect.Effect;
export declare const makeDatabaseWatermarkStore: () => {
load: (resource: "Destination" | "Member" | "Office" | "OpenHouse" | "Property", scope?: DdfWatermarkScope | undefined) => Effect.Effect;
save: (resource: "Destination" | "Member" | "Office" | "OpenHouse" | "Property", watermark: string, scope?: DdfWatermarkScope | undefined) => Effect.Effect;
};
export {};
//# sourceMappingURL=watermarks.d.ts.map