import { Server as SocketIOServer, Socket as SocketIOSocket } from "socket.io";
declare type SocketIOMiddleware = (socket: SocketIOSocket, next: any) => void;
declare type SocketIOListener = {
    event: string;
    handler: (...args: any[]) => any;
};
export declare class SocketIONamespace {
    private readonly _name;
    private readonly _listeners;
    private readonly _middlewares?;
    constructor(_name: string, _listeners: SocketIOListener[], _middlewares?: {
        preConnection?: SocketIOMiddleware[] | undefined;
        postConnection?: SocketIOMiddleware[] | undefined;
    } | undefined);
    attachListeners(server: SocketIOServer, socket: SocketIOSocket): void;
    get name(): string;
    get preConnectionMiddleware(): SocketIOMiddleware[] | undefined;
    get postConnectionMiddleware(): SocketIOMiddleware[] | undefined;
    get listeners(): SocketIOListener[];
}
export {};
