import type { WebSocket } from 'ws';
import type { SetMultiMap } from '../../../util/map/SetMultiMap';
import type { NotificationChannelStorage } from '../NotificationChannelStorage';
import type { WebSocket2023HandlerInput } from './WebSocket2023Handler';
import { WebSocket2023Handler } from './WebSocket2023Handler';
/**
 * Keeps track of the WebSockets that were opened for a WebSocketChannel2023 channel.
 * The WebSockets are stored in the map using the identifier of the matching channel.
 *
 * `cleanupTimer` defines in minutes how often the stored WebSockets are closed
 * if their corresponding channel has expired.
 * Defaults to 60 minutes.
 * Open WebSockets will not receive notifications if their channel expired.
 */
export declare class WebSocket2023Storer extends WebSocket2023Handler {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    private readonly storage;
    private readonly socketMap;
    constructor(storage: NotificationChannelStorage, socketMap: SetMultiMap<string, WebSocket>, cleanupTimer?: number);
    handle({ webSocket, channel }: WebSocket2023HandlerInput): Promise<void>;
    /**
     * Close all WebSockets that are attached to a channel that no longer exists.
     */
    private closeExpiredSockets;
}
