export type RoomSchemaShape = { [k: string]: { presence?: { [k: string]: any; }; topics?: { [k: string]: { [k: string]: any; }; }; }; }; export type PresenceOpts = { user?: boolean; peers?: string[]; keys?: Keys[]; /** * If you haven't joined this room yet, initialPresence lets you set * the very first presence state for the user. */ initialPresence?: Partial; /** @deprecated use `initialPresence` */ initialData?: Partial; }; type PresencePeer = Pick & { peerId: string; }; export type PresenceSlice = { user?: PresencePeer; peers: { [peerId: string]: PresencePeer; }; }; export type PresenceResponse = PresenceSlice & { isLoading: boolean; error?: string; }; export declare function buildPresenceSlice(data: { user?: PresenceShape; peers: Record; }, opts: PresenceOpts, userPeerId: string): PresenceSlice; /** * Compare two presence slices * 0. compare isLoading and error * 1. shallow compare user * 2. compare peers keys * 3. shallow compare each peer */ export declare function hasPresenceResponseChanged(a: PresenceResponse, b: PresenceResponse): boolean; export {}; //# sourceMappingURL=presence.d.ts.map