import { EventEmitter2 } from 'eventemitter2';
import { ClientNode } from './client-node';
import { Event, EventOptions } from './event';
import { Server } from './server';
export declare class ServerChannel extends EventEmitter2 {
    channelName: string;
    server: Server;
    clients: Map<string, Set<ClientNode>>;
    constructor(channelName: string);
    setServer(server: Server): void;
    propagate(event: string, payload: string): void;
    defer<T = any>(event: string, params?: T): void;
    /**
     * Refreshes a method by its identifier.
     */
    refresh(method: string): void;
    /**
     * Declares a new event.
     */
    addEvent(name: string, opts?: EventOptions): void;
    addChannelClient(eventName: string, client: ClientNode): void;
    deleteClientNode(node: ClientNode): void;
    get list(): string[];
    get length(): number;
    get(event: string): Event;
    has(event: string): boolean;
    delete(event: string): boolean;
    clear(): void;
    isSubscribed(client: ClientNode, event: Event): boolean;
}
