UNPKG

@textea/y-socket.io

Version:
29 lines (24 loc) 1.42 kB
import { Mutate, StoreApi } from 'zustand'; interface DefaultClientData { } interface SocketState { connecting: boolean; connected: boolean; synced: boolean; error: string | null; } interface SocketIOProviderState<ClientData extends DefaultClientData = DefaultClientData> extends SocketState { data: ClientData | null; } declare type ReadonlyStore<Store extends StoreApi<unknown>> = Omit<Store, 'setState'>; declare type SocketIOProviderStore<ClientData extends DefaultClientData> = ReadonlyStore<Mutate<StoreApi<SocketIOProviderState<ClientData>>, [['zustand/subscribeWithSelector', never]]>>; interface SocketIOProvider<ClientData extends DefaultClientData = DefaultClientData> extends SocketIOProviderStore<ClientData> { connect: () => void; closeRoom: () => void; disconnect: () => void; connectBroadcastChannel: () => void; disconnectBroadcastChannel: () => void; } declare function useSocketIOProviderState<ClientData extends DefaultClientData>(provider: SocketIOProvider<ClientData> | null | undefined): SocketIOProviderState<ClientData>; declare function useSocketIOProviderState<ClientData extends DefaultClientData, StateSlice>(provider: SocketIOProvider<ClientData> | null | undefined, selector: (state: SocketIOProviderState<ClientData>) => StateSlice, equalityFn?: (a: StateSlice, b: StateSlice) => boolean): StateSlice; export { useSocketIOProviderState };