import type { IPushDataType } from '../Interfaces';
import type { Logger } from '../Logger';
export declare abstract class AbstractPush<T> {
    protected readonly logger: Logger;
    protected connections: Record<string, T>;
    protected abstract close(connection: T): void;
    protected abstract sendToOneConnection(connection: T, data: string): void;
    constructor(logger: Logger);
    protected add(pushRef: string, connection: T): void;
    protected remove(pushRef?: string): void;
    private sendTo;
    sendToAll(type: IPushDataType, data?: unknown): void;
    sendToOne(type: IPushDataType, data: unknown, pushRef: string): void;
    closeAllConnections(): void;
    hasPushRef(pushRef: string): boolean;
}
