import { Socket } from 'socket.io-client';
import { SocketIoBaseEventListener } from '../../../../../core/modules/_shared/infrastructure/services/socket-io-base-event-listener';
import MergeAuthorizationHandler, { MergeAuthorizationHandlerParams } from '../../../protection-plan/domain/services/merge-authorization-handler';
export default class SocketIoMergeAuthorizationHandler extends SocketIoBaseEventListener implements MergeAuthorizationHandler {
    constructor(socket: Socket);
    /**
     * Registers the event listeners for this client.
     * Server-side subscription happens via requestToken() — not automatically here —
     * so no subscribeEmit is set until requestToken is called.
     */
    subscribe: (data: MergeAuthorizationHandlerParams) => void;
    /**
     * Emits the server-side subscription event and stores it as the reconnect
     * payload so the socket re-joins the room automatically after a disconnect.
     */
    requestToken(data: {
        clientId: string;
    }): void;
    unsubscribe: (data: Pick<MergeAuthorizationHandlerParams, "clientId">) => void;
}
