import { WebSocket, RecognizedString } from "uWebSockets.js";
export declare class HASH_TABLE<T extends {
    id: number;
}> {
    name: string;
    size: number;
    createdAt: number;
    0: Map<number, T>;
    1: Map<number, T>;
    2: Map<number, T>;
    3: Map<number, T>;
    4: Map<number, T>;
    5: Map<number, T>;
    6: Map<number, T>;
    7: Map<number, T>;
    8: Map<number, T>;
    9: Map<number, T>;
    add(ws: T): Map<number, T>;
    remove(id: number): boolean;
    findUser(id: number): T;
    forEach(func: (value: T, index: number, mapData: Map<number, T>) => void): void;
    clear(): void;
}
declare type ChannelName = string;
export declare class Route {
    static data: Map<ChannelName, HASH_TABLE<WebSocket & {
        id: number;
    }>>;
    static joinRoute(roomName: string, ws: WebSocket): void;
    static publishToRoute(roomName: string, message: RecognizedString): boolean;
    static broadcastToRoute(roomName: string, senderId: number, message: RecognizedString): boolean;
    static findUser(id: number): WebSocket & {
        id: number;
    } | null;
    static removeUserFromAllRoute(id: number): null;
    static deleteTopic(topic: string): boolean;
    static findUserInOneTopic(topic: string, id: number): void;
    static findTopicsOfUser(id: number): void;
}
export {};
//# sourceMappingURL=Channel.d.ts.map