import type * as sdk from "matrix-js-sdk"; import type { Doc } from "yjs"; export interface Session { homeserver: string; accessToken: string; userId: string; deviceId: string; } export type AccessLevel = "viewer" | "editor" | "owner"; export interface RoomMember { userId: string; displayName: string; accessLevel: AccessLevel; } export type MayDbIndexScope = "private" | "collaborative"; export type MayDbIndexPrimitive = string | number | boolean | null; export interface MayDbIndexOrderBy { column: string; direction: "asc" | "desc"; } export interface MayDbIndexColumnSystemSource { kind: "system"; field: "roomId" | "roomName" | "roomType"; } export interface MayDbIndexColumnYTextSource { kind: "ytext"; path: string; } export type MayDbIndexColumnSource = MayDbIndexColumnSystemSource | MayDbIndexColumnYTextSource; export interface MayDbIndexColumnDefinition { source: MayDbIndexColumnSource; } export interface MayDbCollaborativeIndexResolverInput { roomId: string; roomName: string; roomType: string; doc: Doc; } export type MayDbCollaborativeIndexResolver = (input: MayDbCollaborativeIndexResolverInput) => string | string[] | null | undefined; export interface MayDbIndexDefinition { scope: MayDbIndexScope; roomTypes: string[]; columns: Record; defaultOrderBy: MayDbIndexOrderBy; maxEntries: number; resolveIndexRoomIds?: MayDbCollaborativeIndexResolver; } export interface MayDbSchema { roomTypes: Record; indexes: Record; } export interface MayDbIndexItem { roomId: string; values: Record; } export interface MayDbIndexQueryPageOptions { where?: Record; orderBy?: MayDbIndexOrderBy; limit?: number; after?: MayDbIndexItem | null; } export interface MayDbIndexQueryPageResult { items: MayDbIndexItem[]; hasMore: boolean; } export interface MayDbIndexHandle { readonly indexName: string; readonly indexRoomId: string | null; activate(): () => void; ensureReady(): Promise; queryPage(options: MayDbIndexQueryPageOptions): Promise; subscribe(listener: () => void): () => void; } export type RoomStatus = "disconnected" | "connecting" | "connected" | "error"; export interface RoomState { status: RoomStatus; canEdit: boolean; name: string | null; } export type MatrixClient = sdk.MatrixClient; /** * Interface for what a room instance needs from its host client. */ export interface RoomServices { matrixClient: MatrixClient; removeRoom(roomId: string): void; } //# sourceMappingURL=types.d.ts.map