export type SessionVisibility = "public" | "private"; export type SessionStatus = "open" | "running" | "closed"; export interface SessionListing { serverId: string; gameId: string; status: SessionStatus; visibility: SessionVisibility; memberCount: number; slotsPerServer: number; label?: string; mode?: string; joinCode?: string; tags?: readonly string[]; updatedAt: number; } export interface MatchFilter { mode?: string; tags?: readonly string[]; query?: string; notFull?: boolean; status?: readonly SessionStatus[]; includePrivate?: boolean; } export interface BrowseOptions { limit?: number; } export declare function normalizeJoinCode(code: string): string; export declare function generateJoinCode(random: () => number, length?: number): string; export declare function hasSpace(listing: SessionListing): boolean; export declare function matchesFilter(listing: SessionListing, filter: MatchFilter): boolean; export declare function browseSessions(listings: readonly SessionListing[], filter?: MatchFilter, options?: BrowseOptions): SessionListing[]; export declare function findByJoinCode(listings: readonly SessionListing[], code: string): SessionListing | null; export declare function quickMatch(listings: readonly SessionListing[], filter?: MatchFilter): SessionListing | null;