import { Awareness } from 'y-protocols/awareness'; import * as Y from 'yjs'; import { Mutate, StoreApi } from 'zustand'; import { Room } from 'socket.io-adapter'; declare type RoomName = Room; interface DefaultClientData { } interface Options { awareness?: Awareness; /** * @default true */ autoConnect?: boolean; /** * @default true */ autoConnectBroadcastChannel?: boolean; } interface SocketState { connecting: boolean; connected: boolean; synced: boolean; error: string | null; } interface SocketIOProviderState extends SocketState { data: ClientData | null; } declare type ReadonlyStore> = Omit; declare type SocketIOProviderStore = ReadonlyStore>, [['zustand/subscribeWithSelector', never]]>>; interface SocketIOProvider extends SocketIOProviderStore { connect: () => void; closeRoom: () => void; disconnect: () => void; connectBroadcastChannel: () => void; disconnectBroadcastChannel: () => void; } declare type CreateSocketIOProvider = (serverUrl: string, roomName: RoomName, doc: Y.Doc, options?: Options) => SocketIOProvider; declare const createSocketIOProvider: CreateSocketIOProvider; export { Options, SocketIOProvider, SocketIOProviderState, createSocketIOProvider };