import { Env } from "../../client/index.js"; import { ComponentResponse, MessageResponse, ModalResponse } from "../index.js"; import { APIInteractionResponseDeferredMessageUpdate, APIInteractionResponseUpdateMessage, APIMessageComponentButtonInteraction, APIMessageComponentSelectMenuInteraction, ComponentType } from "discord-api-types/v10"; export interface ComponentHandlerData { custom_id: string; } export declare type ComponentResponseUnion = ModalResponse | ComponentResponse | MessageResponse | APIInteractionResponseDeferredMessageUpdate | APIInteractionResponseUpdateMessage; export declare type ButtonComponentExecutor = (component: APIMessageComponentButtonInteraction, env: Env) => ComponentResponseUnion | Promise; export declare type SelectMenuComponentExecutor = (component: APIMessageComponentSelectMenuInteraction, env: Env) => ComponentResponseUnion | Promise; export declare abstract class ComponentHandler { customId: string; protected type: ComponentType; executor: ButtonComponentExecutor | SelectMenuComponentExecutor | undefined; protected constructor(options?: { data?: ComponentHandlerData; }); setCustomId(customId: string): this; }