import { ThreadChannel } from "./factories/channel.js";
import { TransformerReturnType } from "lilybird";
import { User } from "./factories/user.js";
import { Message } from "./index.js";
import type { Channel, ExtendedThreadChannel } from "./factories/channel.js";
import type { GuildMemberWithGuildId } from "./factories/guild-member.js";
import type { Guild as LilyGuild, Client } from "lilybird";
import type { Interaction, PartialMessage } from "./index.js";
import type { Guild, NewGuild } from "./factories/guild.js";
export declare function makeTransformersObject<C extends Client>(): {
    channelCreate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Channel.Structure) => Channel;
    };
    channelUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Channel.Structure) => Channel;
    };
    channelDelete: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Channel.Structure) => Channel;
    };
    channelPinsUpdate: {
        return: TransformerReturnType.MULTIPLE;
        handler: (_: C, data: {
            guild_id?: string;
            channel_id: string;
            last_pin_timestamp?: string | null;
        }) => [guildId: string | undefined, channelId: string, lastPinTimestamp: Date | null];
    };
    threadCreate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Channel.Structure & {
            newly_created: boolean;
            member: import("lilybird").Channel.ThreadMemberStructure | undefined;
        }) => ExtendedThreadChannel;
    };
    threadUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Channel.Structure) => Channel;
    };
    threadDelete: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: Pick<import("lilybird").Channel.ThreadChannelStructure, "guild_id" | "id" | "type" | "parent_id">) => Pick<ThreadChannel, "id" | "guildId" | "parentId" | "type">;
    };
    guildCreate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: LilyGuild.New | LilyGuild.UnavailableStructure) => LilyGuild.UnavailableStructure | NewGuild;
    };
    guildUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: LilyGuild.Structure) => Guild;
    };
    guildMemberAdd: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: LilyGuild.MemberStructure & {
            guild_id: string;
        }) => GuildMemberWithGuildId;
    };
    guildMemberRemove: {
        return: TransformerReturnType.MULTIPLE;
        handler: (client: C, data: {
            guild_id: string;
            user: import("lilybird").User.Structure;
        }) => [id: string, user: User];
    };
    guildMemberUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: {
            guild_id: string;
            roles: Array<string>;
            user: import("lilybird").User.Structure;
            nick?: string | null;
            avatar: string | null;
            joined_at: string | null;
            premium_since?: string | null;
            deaf?: boolean;
            mute?: boolean;
            pending?: boolean;
            communication_disabled_until?: string | null;
        }) => GuildMemberWithGuildId;
    };
    interactionCreate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Interaction.Structure) => Interaction;
    };
    messageCreate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").Message.GuildStructure) => Message;
    };
    messageUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: Partial<import("lilybird").Message.GuildStructure>) => PartialMessage;
    };
    messageDelete: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: {
            id: string;
            channel_id: string;
            guild_id?: string;
        }) => PartialMessage;
    };
    userUpdate: {
        return: TransformerReturnType.SINGLE;
        handler: (client: C, data: import("lilybird").User.Structure) => User;
    };
};
//# sourceMappingURL=transformers.d.ts.map