import { type ThreadChannelStructure } from '../../client/transformers';
import type { UsingClient } from '../../commands';
import { type ObjectToLower } from '../../common';
import type { GatewayThreadCreateDispatchData, GatewayThreadDeleteDispatchData, GatewayThreadListSyncDispatchData, GatewayThreadMemberUpdateDispatchData, GatewayThreadMembersUpdateDispatchData, GatewayThreadUpdateDispatchData } from '../../types';
export declare const THREAD_CREATE: (self: UsingClient, data: GatewayThreadCreateDispatchData) => ThreadChannelStructure;
export declare const THREAD_DELETE: (self: UsingClient, data: GatewayThreadDeleteDispatchData) => Promise<ThreadChannelStructure | ObjectToLower<GatewayThreadDeleteDispatchData>>;
export declare const THREAD_LIST_SYNC: (_self: UsingClient, data: GatewayThreadListSyncDispatchData) => {
    guildId: string;
    channelIds?: string[] | undefined;
    threads: {
        member?: {
            id?: string | undefined;
            userId?: string | undefined;
            joinTimestamp: string;
            flags: import("../../types").ThreadMemberFlags;
            member?: import("../../types").APIGuildMember | undefined;
        } | undefined;
        threadMetadata?: {
            archived: boolean;
            autoArchiveDuration: import("../../types").ThreadAutoArchiveDuration;
            archiveTimestamp: string;
            locked: boolean;
            invitable?: boolean | undefined;
            createTimestamp?: string | undefined;
        } | undefined;
        messageCount?: number | undefined;
        memberCount?: number | undefined;
        ownerId?: string | undefined;
        totalMessageSent?: number | undefined;
        appliedTags: string[];
        id: string;
        type: import("../../types").ThreadChannelType;
        flags?: import("../../types").ChannelFlags | undefined;
        rateLimitPerUser?: number | undefined;
        lastMessageId?: string | null | undefined;
        lastPinTimestamp?: string | null | undefined;
        name: string;
        guildId?: string | undefined;
        permissionOverwrites?: {
            id: string;
            type: import("../../types").OverwriteType;
            allow: string;
            deny: string;
        }[] | undefined;
        position: number;
        nsfw?: boolean | undefined;
        parentId?: string | undefined;
    }[];
    members: {
        id?: string | undefined;
        userId?: string | undefined;
        joinTimestamp: string;
        flags: import("../../types").ThreadMemberFlags;
        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;
    }[];
};
export declare const THREAD_MEMBER_UPDATE: (_self: UsingClient, data: GatewayThreadMemberUpdateDispatchData) => {
    id?: string | undefined;
    userId?: string | undefined;
    joinTimestamp: string;
    flags: import("../../types").ThreadMemberFlags;
    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;
    guildId: string;
};
export declare const THREAD_MEMBERS_UPDATE: (_self: UsingClient, data: GatewayThreadMembersUpdateDispatchData) => {
    id: string;
    guildId: string;
    memberCount: number;
    addedMembers?: {
        id?: string | undefined;
        userId?: string | undefined;
        joinTimestamp: string;
        flags: import("../../types").ThreadMemberFlags;
        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;
    }[] | undefined;
    removedMemberIds?: string[] | undefined;
};
export declare const THREAD_UPDATE: (self: UsingClient, data: GatewayThreadUpdateDispatchData) => Promise<[thread: ThreadChannelStructure, old?: ThreadChannelStructure]>;
