import { ClientConfiguration } from "../config/config"; import { Color } from "../message/color"; import { ClientMixin, ConnectionMixin } from "../mixins/base-mixin"; import { RoomStateTracker } from "../mixins/roomstate-tracker"; import { UserStateTracker } from "../mixins/userstate-tracker"; import { BaseClient } from "./base-client"; import { SingleConnection } from "./connection"; export declare type ConnectionPredicate = (conn: SingleConnection) => boolean; export declare class ChatClient extends BaseClient { get wantedChannels(): Set; get joinedChannels(): Set; roomStateTracker?: RoomStateTracker; userStateTracker?: UserStateTracker; readonly connectionMixins: ConnectionMixin[]; readonly connections: SingleConnection[]; private activeWhisperConn; constructor(configuration?: ClientConfiguration); connect(): Promise; close(): void; destroy(error?: Error): void; /** * Sends a raw IRC command to the server, e.g. JOIN #forsen. * * Throws an exception if the passed command contains one or more newline characters. * * @param command Raw IRC command. */ sendRaw(command: string): void; join(channelName: string): Promise; part(channelName: string): Promise; joinAll(channelNames: string[]): Promise>; privmsg(channelName: string, message: string): Promise; say(channelName: string, message: string): Promise; me(channelName: string, message: string): Promise; timeout(channelName: string, username: string, length: number, reason?: string): Promise; ban(channelName: string, username: string, reason?: string): Promise; whisper(username: string, message: string): Promise; setColor(color: Color): Promise; getMods(channelName: string): Promise; getVips(channelName: string): Promise; ping(): Promise; newConnection(): SingleConnection; use(mixin: ClientMixin): void; private reconnectFailedConnection; /** * Finds a connection from the list of connections that satisfies the given predicate, * or if none was found, returns makes a new connection. This means that the given predicate must be specified * in a way that a new connection always satisfies it. * * @param predicate The predicate the connection must fulfill. */ private requireConnection; } //# sourceMappingURL=client.d.ts.map