import { CloseEvent, Event, MessageEvent, WebSocket } from "ws";
export type messageHandler = ({ badges, nick, message, }: {
    badges: string[];
    nick: string;
    message: string;
}) => void;
export type donationHandler = ({ badges, nick, message, isAnonymous, amount, }: {
    badges: string[];
    nick: string;
    message: string;
    isAnonymous: boolean;
    amount: number;
}) => void;
export type subscriptionHandler = ({ badges, nick, message, month, tierName, tierNo, }: {
    badges: string[];
    nick: string;
    message: string;
    month: number;
    tierName: string;
    tierNo: number;
}) => void;
export type emojiPack = {
    emojiPackId: string;
    emojiPackName: string;
    emojiPackImageUrl: string;
    emojis: {
        emojiId: string;
        imageUrl: string;
    }[];
};
export declare class ChzzkChat {
    private initialization;
    ws: WebSocket | undefined;
    messageHandler: messageHandler | undefined;
    donationHandler: donationHandler | undefined;
    subscriptionHandler: subscriptionHandler | undefined;
    chzzkChannelId: string;
    chatChannelAccessToken: string;
    chatChannelId: string;
    sid: string;
    uuid: string;
    emojiPacks: emojiPack[];
    init: () => Promise<void>;
    constructor(chzzkChannelId: string);
    addMessageHandler: (handler: messageHandler) => void;
    addDonationHandler: (handler: donationHandler) => void;
    addSubscriptionHandler: (handler: subscriptionHandler) => void;
    getChatChannelId: (chzzkChannelId: string) => Promise<string>;
    getChatChannelAccessToken: (chatChannelId: string) => Promise<string>;
    getChannelEmojiPacks: (channelId: string) => Promise<emojiPack[]>;
    getEmojiUrl: (emojiId: string) => string | undefined;
    parseBadgeUrl: (badge: any[] | undefined) => string[];
    onOpen(event: Event): void;
    onClose(event: CloseEvent): void;
    onError(event: Event): void;
    onMessage(event: MessageEvent): void;
    closs: () => void;
}
//# sourceMappingURL=chzzkChat.d.ts.map