import { Types } from 'ably'; import EventEmitter, { type EventKey, type EventListener } from './utilities/EventEmitter.js'; import Locations from './Locations.js'; import Cursors from './Cursors.js'; import Members from './Members.js'; import Locks from './Locks.js'; import type { SpaceOptions, SpaceMember, ProfileData } from './types.js'; import type { Subset } from './utilities/types.js'; type SpaceEventsMap = { update: { members: SpaceMember[]; }; }; declare class Space extends EventEmitter { readonly client: Types.RealtimePromise; readonly channelName: string; readonly connectionId: string | undefined; readonly options: SpaceOptions; readonly locations: Locations; readonly cursors: Cursors; readonly members: Members; readonly channel: Types.RealtimeChannelPromise; readonly locks: Locks; constructor(name: string, client: Types.RealtimePromise, options?: Subset); private presenceUpdate; private presenceEnter; private presenceLeave; private setOptions; private onPresenceUpdate; enter(profileData?: ProfileData): Promise; updateProfileData(profileDataOrUpdateFn: Record | ((update: Record | null) => Record)): Promise; leave(profileData?: ProfileData): Promise; getState(): Promise<{ members: SpaceMember[]; }>; subscribe>(listenerOrEvents?: K | K[] | EventListener, listener?: EventListener): void; unsubscribe>(listenerOrEvents?: K | K[] | EventListener, listener?: EventListener): void; } export default Space;