import type { IRoomCache } from '../matchmaker/LocalDriver/LocalDriver.ts'; import type { Client } from '../Transport.ts'; import { Room } from '../Room.ts'; type LobbyClient = Client<{ messages: { rooms: IRoomCache[]; '+': [roomId: string, room: IRoomCache]; '-': string; }; }>; export interface FilterInput { name?: string; metadata?: any; } export interface LobbyOptions { filter?: FilterInput; } export declare class LobbyRoom extends Room { rooms: IRoomCache[]; unsubscribeLobby: () => void; clientOptions: { [sessionId: string]: LobbyOptions; }; messages: { filter: (client: LobbyClient, filter: FilterInput) => void; }; onCreate(options: any): Promise; onJoin(client: LobbyClient, options: LobbyOptions): void; onLeave(client: LobbyClient): void; onDispose(): void; protected filterItemsForClient(options: LobbyOptions): IRoomCache[]; protected filterItemForClient(room: IRoomCache, filter?: LobbyOptions['filter']): boolean; } export {};