import { IIRCWrapper } from '../../types/impl.interface'; import { TypedEventEmitter } from '../typed-event-emitter'; import { WhoResponse } from '../who-parser'; import { NickListEvents } from './nicklist.events'; import { INicklistChannel } from './nicklist.interfaces'; /** * Manages a nicklist for your IRC connection, complete with modes and prefixes. */ export declare class IRCNickList extends TypedEventEmitter { irc: IIRCWrapper; channels: INicklistChannel[]; constructor(irc: IIRCWrapper); /** * Get my nickname */ get nickname(): string; /** * Available user prefixes */ get prefixes(): string[]; /** * Available user modes with prefixes */ get modes(): string[]; /** * List of supported prefix modes */ get supportedModes(): Record; /** * Does the provided nickname currently have a supported prefix. * @param nick Nickname with a prefix * @returns boolean */ nickHasPrefix(nick: string): boolean; /** * Strip prefix from nickname, if exists * @param nick Nickname with a prefix * @returns Nickname without prefix */ stripPrefix(nick: string): string; /** * Find a channel by name * @param channel Channel name * @returns Channel object or undefined */ getChannelByName(channel: string): INicklistChannel | undefined; /** * Handle a user join event. * @param channel Channel * @param nickname Nickname */ handleJoin(channel: string, nickname: string): void; /** * Handle `NAMES` reply. * @param channel Channel * @param names Nick list */ handleNames(channel: string, names: string[]): void; /** * Handle a WHO response list, sets hidden modes for nicks * @param whoList WHO reply */ handleWho(whoList: WhoResponse[]): void; /** * Handles `QUIT`, `PART` and `KICK` events (user left channel). * @param nickname Nickname * @param channel Optional channel, if missing, removes from all */ handleLeave(nickname: string, channel?: string): void; /** * Handle channel modes. * @param channel Channel * @param mode Mode * @param modeTarget User * @param method Add or remove (`+` or `-`) */ handleMode(channel: string, mode: string, modeTarget: string, method: string): void; /** * Handle nickname changes. * @param oldNick Old nickname * @param newNick New nickname */ handleNick(oldNick: string, newNick: string): void; /** * Get nick object from channel, if exists. * @param channel Channel object * @param nickname Nickname * @returns Nick object */ getNickFromChannel(channel: INicklistChannel, nickname: string): import("./nicklist.interfaces").INicklistNick | undefined; /** * Remove a nickname from channel, if exists. * @param channel Channel object * @param nickname Nickname */ removeNickIfExists(channel: INicklistChannel, nickname: string): boolean; /** * Get the applicable prefix for a list of user channel modes. * @param modes List of modes * @returns Prefix or empty string */ getPrefixFromModes(modes: string[]): string; private handlers; }