import type { EventBinder, Listener } from '@d-fischer/typed-event-emitter'; import type { IrcClient } from '../IrcClient'; import type { Message, MessageConstructor } from './Message'; export type MessageCollectorEndCallback = (messages: Message[]) => void; export declare class MessageCollector { protected _client: IrcClient; protected _originalMessage: Message; protected _types: Set; protected _messages: Message[]; protected _promise?: Promise; protected _promiseResolve?: MessageCollectorEndCallback; protected readonly _endEventHandlers: Map, Listener>; constructor(_client: IrcClient, _originalMessage: Message, ...types: MessageConstructor[]); untilEvent(eventType: EventBinder): void; promise(): Promise; collect(message: Message): boolean; end(): void; private _cleanEndEventHandlers; private _cleanEndEventHandler; }