import { Room } from "../Room"; import { RuntimeIndexHandle } from "./handle"; import type { MayDbIndexHandle, MayDbIndexQueryPageOptions, MayDbIndexQueryPageResult, MayDbSchema, MatrixClient } from "../types"; export declare class IndexRuntime { private readonly namespace; private readonly matrixClient; private readonly schema; private readonly openRoom; private readonly roomStore; private readonly indexEntries; private readonly roomDescriptors; private readonly trackedRooms; private readonly collaborativeSync; private readonly handles; private readonly roomTypesInIndexes; private readonly roomWriteListenerSetupInFlight; constructor(options: { namespace: string; matrixClient: MatrixClient; schema: MayDbSchema; openRoom: (roomId: string) => Room; }); hasIndexes(): boolean; isRoomTypeIndexed(roomType: string): boolean; validateRoomType(roomType: string): void; openIndex(options: { indexName: string; indexRoomId?: string; }): MayDbIndexHandle; dispose(): void; trackRoom(room: Room): void; ensureRoomIndexed(options: { roomId: string; roomNameHint: string; }): Promise; onHandleActivated(handle: RuntimeIndexHandle): void; onHandleDeactivated(handle: RuntimeIndexHandle): void; ensureHandleReady(handle: RuntimeIndexHandle): Promise; queryHandlePage(handle: RuntimeIndexHandle, options: MayDbIndexQueryPageOptions): Promise; private validateSchemaIndexes; private getIndexDefinition; private validateIndexScopeOptions; private getOrCreateHandle; private initializeHandle; private ensureRoomWriteListener; private setupRoomWriteListener; private onLocalRoomWrite; private syncRoomIntoIndexes; private syncRoomIntoIndex; private removeRoomFromIndex; private upsertRoomToIndex; private getRoomDescriptor; private readRoomDescriptor; private resolveRoomName; private resolveRoomType; private normalizeRoomType; private readRoomTypeFromDocument; private resolveHandleIndexRoomId; private handleKey; } //# sourceMappingURL=runtime.d.ts.map