import { Client as LiveblocksClient, LiveObject } from "@liveblocks/client";
import { Project } from "../data/types";
import { SupabaseProject } from "../supabase-client/supabase-types";
import { LiveblocksStorage, OpsTransaction } from "./types";
export declare function forceClientsRefresh(storage: LiveObject<LiveblocksStorage>): void;
export declare function applyLiveblocksOpsToProject(liveblocksClient: LiveblocksClient, supabaseProject: SupabaseProject, { disconnectRoomOnError }?: {
    disconnectRoomOnError?: boolean;
}): Promise<{
    project: Project;
    remoteOps: OpsTransaction[];
}>;
export declare function enterLiveblocksRoomForProject(liveblocksClient: LiveblocksClient, supabaseProject: SupabaseProject): {
    room: import("@liveblocks/core").Room<import("./types").LiveblocksPresence, LiveblocksStorage, import("@liveblocks/core").BaseUserMeta, import("@liveblocks/core").Json, import("@liveblocks/core").BaseMetadata>;
    leave: () => void;
};
export declare function modifyLiveblocksRoomForProject(liveblocksClient: LiveblocksClient, supabaseProject: SupabaseProject, fn: (root: LiveObject<LiveblocksStorage>) => void): Promise<void>;
//# sourceMappingURL=liveblocks-helpers.d.ts.map