import { ReactModel, ViewInfo } from '@multisynq/react'; import { UseStateTogetherWithPerUserValuesOptions } from '../hooks/useStateTogetherWithPerUserValues'; import { default as ChatModel } from './ChatModel'; interface setStateArgs { rtKey: string; value: T | undefined; } interface SetStatePerUserArgs { rtKey: string; userId: string; value: T | undefined; } interface ReactTogetherModelOptions extends Record { } interface FunctionTogetherArgs { rtKey: string; args: unknown[]; } interface CreateChatArgs { rtKey: string; } interface ConfigureStatePerUserArgs { rtKey: string; userId: string; options: UseStateTogetherWithPerUserValuesOptions; } interface StatePerUserConfig { keepValues?: boolean; } export default class ReactTogetherModel extends ReactModel { state: Map; statePerUser: Map>; statePerUserConfig: Map; chats: Map; viewIdUserIdMapping: Map; userIdCount: Map; init(options: ReactTogetherModelOptions): void; handleViewJoin(viewId: string, viewInfo: ViewInfo<{ userId?: string; }>): void; handleViewExit(viewId: string): void; setState({ rtKey, value }: setStateArgs): void; setStatePerUser({ rtKey, userId, value }: SetStatePerUserArgs): void; configureStatePerUser({ rtKey, options }: ConfigureStatePerUserArgs): void; functionTogether({ rtKey, args }: FunctionTogetherArgs): void; createChat({ rtKey }: CreateChatArgs): void; } export declare function getUserId(model: ReactTogetherModel, viewId: string): string; export declare function getChat(model: ReactTogetherModel, rtKey: string): ChatModel | undefined; export {};