import { Transceiver } from "atom.io/internal"; import { Json } from "atom.io/foundations/json"; import { UList } from "atom.io/transceivers/u-list"; import * as AtomIO from "atom.io"; import { MutableAtomToken } from "atom.io"; import * as React from "react"; import * as RT from "atom.io/realtime"; import { AnyMosaicTransceiver, MosaicPresenceEnvelope, RoomKey, RoomSocketInterface, UserKey } from "atom.io/realtime"; import { MosaicClientProblem, MosaicClientStatus, MosaicController, MosaicSyncOptions } from "atom.io/realtime-client"; import { Socket as Socket$1 } from "socket.io-client"; import { Canonical } from "atom.io/foundations/canonical"; //#region src/realtime-react/realtime-context.d.ts type RealtimeServiceCounter = { consumerCount: number; dispose: () => void; }; type RealtimeServiceKey = object | string; type RealtimeReactStore = { socket: Socket$1 | null; services: Map | null; }; declare const RealtimeContext: React.Context; declare const RealtimeProvider: React.FC<{ children: React.ReactNode; socket: Socket$1 | null; }>; //#endregion //#region src/realtime-react/use-mosaic.d.ts type UseMosaicOptions = Omit; type UseMosaicResult = Pick, `actor` | `address` | `atom` | `change` | `clearProblem` | `createGroupId` | `publishPresence` | `retryPending` | `session` | `syncState` | `synchronize`> & { /** Escape hatch for protocol- and lifecycle-level controls. */ readonly controller: MosaicController; readonly pending: readonly string[]; readonly presence: readonly MosaicPresenceEnvelope[]; readonly problem: MosaicClientProblem | null; readonly revision: number; readonly status: MosaicClientStatus; }; /** * Synchronize one ordinary mutable atom through the nearest RealtimeProvider. * Read the document with `useO(token)` and derive from it with normal selectors; * this hook only exposes the Store-owned collaboration control plane. */ declare function useMosaic(token: MutableAtomToken, options: UseMosaicOptions): UseMosaicResult; //#endregion //#region src/realtime-react/use-pull-atom.d.ts declare function usePullAtom(token: AtomIO.RegularAtomToken): AtomIO.ViewOf; //#endregion //#region src/realtime-react/use-pull-atom-family-member.d.ts declare function usePullAtomFamilyMember(family: AtomIO.RegularAtomFamilyToken, subKey: NoInfer): AtomIO.ViewOf; //#endregion //#region src/realtime-react/use-pull-mutable-atom.d.ts declare function usePullMutable>(token: AtomIO.MutableAtomToken): T; //#endregion //#region src/realtime-react/use-pull-mutable-family-member.d.ts declare function usePullMutableAtomFamilyMember, K extends Canonical>(familyToken: AtomIO.MutableAtomFamilyToken, key: NoInfer): T; //#endregion //#region src/realtime-react/use-pull-selector.d.ts declare function usePullSelector(token: AtomIO.SelectorToken): AtomIO.ViewOf; //#endregion //#region src/realtime-react/use-pull-selector-family-member.d.ts declare function usePullSelectorFamilyMember(familyToken: AtomIO.SelectorFamilyToken, key: NoInfer): AtomIO.ViewOf; //#endregion //#region src/realtime-react/use-push.d.ts declare function usePushStatus(token: AtomIO.WritableToken): RT.RealtimeLeaseStatus; declare function usePush(token: AtomIO.WritableToken): ((next: New | ((old: J) => New)) => void) | null; //#endregion //#region src/realtime-react/use-realtime-rooms.d.ts type RealtimeRoomsTools = { roomSocket: Socket$1<{}, RoomSocketInterface>; myRoomKey: RoomKey | undefined; myMutualsAtom: MutableAtomToken>; myOwnedRoomsAtom: MutableAtomToken>; allRoomKeysAtom: MutableAtomToken>; }; declare function useRealtimeRooms(): RealtimeRoomsTools; //#endregion //#region src/realtime-react/use-realtime-service.d.ts declare function useRealtimeService(key: RealtimeServiceKey, create: (socket: Socket$1) => () => void): void; //#endregion export { RealtimeContext, RealtimeProvider, RealtimeReactStore, RealtimeRoomsTools, RealtimeServiceCounter, RealtimeServiceKey, UseMosaicOptions, UseMosaicResult, useMosaic, usePullAtom, usePullAtomFamilyMember, usePullMutable, usePullMutableAtomFamilyMember, usePullSelector, usePullSelectorFamilyMember, usePush, usePushStatus, useRealtimeRooms, useRealtimeService }; //# sourceMappingURL=index.d.ts.map