import { type MessageStructure } from '../../client/transformers';
import type { UsingClient } from '../../commands';
import { type ObjectToLower, type OmitInsert } from '../../common';
import type { GatewayMessageCreateDispatchData, GatewayMessageDeleteBulkDispatchData, GatewayMessageDeleteDispatchData, GatewayMessagePollVoteDispatchData, GatewayMessageReactionAddDispatchData, GatewayMessageReactionRemoveAllDispatchData, GatewayMessageReactionRemoveDispatchData, GatewayMessageReactionRemoveEmojiDispatchData, GatewayMessageUpdateDispatchData } from '../../types';
export declare const MESSAGE_CREATE: (self: UsingClient, data: GatewayMessageCreateDispatchData) => MessageStructure;
export declare const MESSAGE_DELETE: (self: UsingClient, data: GatewayMessageDeleteDispatchData) => Promise<MessageStructure | ObjectToLower<GatewayMessageDeleteDispatchData>>;
export declare const MESSAGE_DELETE_BULK: (self: UsingClient, data: GatewayMessageDeleteBulkDispatchData) => Promise<GatewayMessageDeleteBulkDispatchData & {
    messages: (MessageStructure | string)[];
}>;
export declare const MESSAGE_REACTION_ADD: (_self: UsingClient, data: GatewayMessageReactionAddDispatchData) => {
    type: import("../../types").ReactionType;
    guildId?: string | undefined;
    messageId: string;
    channelId: string;
    member?: {
        user: {
            id: string;
            username: string;
            discriminator: string;
            globalName: string | null;
            avatar: string | null;
            bot?: boolean | undefined;
            system?: boolean | undefined;
            mfaEnabled?: boolean | undefined;
            banner?: string | null | undefined;
            accentColor?: number | null | undefined;
            locale?: string | undefined;
            verified?: boolean | undefined;
            email?: string | null | undefined;
            flags?: import("../../types").UserFlags | undefined;
            premiumType?: import("../../types").UserPremiumType | undefined;
            publicFlags?: import("../../types").UserFlags | undefined;
            avatarDecorationData?: {
                asset: string;
                skuId: string;
            } | null | undefined;
        };
        nick?: string | null | undefined;
        avatar?: string | null | undefined;
        roles: string[];
        joinedAt: string;
        premiumSince?: string | null | undefined;
        deaf: boolean;
        mute: boolean;
        flags: import("../../types").GuildMemberFlags;
        pending?: boolean | undefined;
        communicationDisabledUntil?: string | null | undefined;
        avatarDecorationData?: import("../../types").APIAvatarDecorationData | null | undefined;
        banner: string | null;
    } | undefined;
    emoji: {
        roles?: string[] | undefined;
        user?: {
            id: string;
            username: string;
            discriminator: string;
            globalName: string | null;
            avatar: string | null;
            bot?: boolean | undefined;
            system?: boolean | undefined;
            mfaEnabled?: boolean | undefined;
            banner?: string | null | undefined;
            accentColor?: number | null | undefined;
            locale?: string | undefined;
            verified?: boolean | undefined;
            email?: string | null | undefined;
            flags?: import("../../types").UserFlags | undefined;
            premiumType?: import("../../types").UserPremiumType | undefined;
            publicFlags?: import("../../types").UserFlags | undefined;
            avatarDecorationData?: import("../../types").APIAvatarDecorationData | null | undefined;
        } | undefined;
        requireColons?: boolean | undefined;
        managed?: boolean | undefined;
        available?: boolean | undefined;
        id: string | null;
        name: string | null;
        animated?: boolean | undefined;
    };
    userId: string;
    burstColors: string[];
    messageAuthorId?: string | undefined;
    burst: boolean;
};
export declare const MESSAGE_REACTION_REMOVE: (_self: UsingClient, data: GatewayMessageReactionRemoveDispatchData) => {
    type: import("../../types").ReactionType;
    guildId?: string | undefined;
    messageId: string;
    channelId: string;
    emoji: {
        roles?: string[] | undefined;
        user?: {
            id: string;
            username: string;
            discriminator: string;
            globalName: string | null;
            avatar: string | null;
            bot?: boolean | undefined;
            system?: boolean | undefined;
            mfaEnabled?: boolean | undefined;
            banner?: string | null | undefined;
            accentColor?: number | null | undefined;
            locale?: string | undefined;
            verified?: boolean | undefined;
            email?: string | null | undefined;
            flags?: import("../../types").UserFlags | undefined;
            premiumType?: import("../../types").UserPremiumType | undefined;
            publicFlags?: import("../../types").UserFlags | undefined;
            avatarDecorationData?: import("../../types").APIAvatarDecorationData | null | undefined;
        } | undefined;
        requireColons?: boolean | undefined;
        managed?: boolean | undefined;
        available?: boolean | undefined;
        id: string | null;
        name: string | null;
        animated?: boolean | undefined;
    };
    userId: string;
    burst: boolean;
};
export declare const MESSAGE_REACTION_REMOVE_ALL: (_self: UsingClient, data: GatewayMessageReactionRemoveAllDispatchData) => {
    channelId: string;
    messageId: string;
    guildId?: string | undefined;
};
export declare const MESSAGE_REACTION_REMOVE_EMOJI: (_self: UsingClient, data: GatewayMessageReactionRemoveEmojiDispatchData) => {
    emoji: {
        roles?: string[] | undefined;
        user?: {
            id: string;
            username: string;
            discriminator: string;
            globalName: string | null;
            avatar: string | null;
            bot?: boolean | undefined;
            system?: boolean | undefined;
            mfaEnabled?: boolean | undefined;
            banner?: string | null | undefined;
            accentColor?: number | null | undefined;
            locale?: string | undefined;
            verified?: boolean | undefined;
            email?: string | null | undefined;
            flags?: import("../../types").UserFlags | undefined;
            premiumType?: import("../../types").UserPremiumType | undefined;
            publicFlags?: import("../../types").UserFlags | undefined;
            avatarDecorationData?: import("../../types").APIAvatarDecorationData | null | undefined;
        } | undefined;
        requireColons?: boolean | undefined;
        managed?: boolean | undefined;
        available?: boolean | undefined;
        id: string | null;
        name: string | null;
        animated?: boolean | undefined;
    };
    channelId: string;
    messageId: string;
    guildId?: string | undefined;
};
export declare const MESSAGE_UPDATE: (self: UsingClient, data: GatewayMessageUpdateDispatchData) => Promise<[message: OmitInsert<MessageStructure, "tts", {
    tts: false;
}>, old: undefined | MessageStructure]>;
export declare const MESSAGE_POLL_VOTE_REMOVE: (_: UsingClient, data: GatewayMessagePollVoteDispatchData) => {
    userId: string;
    channelId: string;
    messageId: string;
    guildId?: string | undefined;
    answerId: number;
};
