import { DrizzleClient } from '../../types/drizzle.js';
import { ICursorStore, CursorSnapshot } from './integration-cursor-store.protocol.js';
import 'drizzle-orm/node-postgres';

declare class PostgresCursorStore implements ICursorStore {
    private readonly db;
    private readonly multiTenant;
    constructor(db: DrizzleClient, multiTenant?: boolean);
    get(subscriptionId: string, tenantId?: string | null): Promise<unknown | null>;
    put(subscriptionId: string, cursor: unknown, tenantId?: string | null): Promise<void>;
    listAll(tenantId?: string | null): Promise<CursorSnapshot[]>;
    /**
     * Centralized WHERE clause — `get` and `put` share identical semantics.
     * Drift here would let a caller read under one tenancy rule and write
     * under another.
     */
    private buildWhere;
}

export { PostgresCursorStore };
