import { Component, ComponentAPI } from '@ayanaware/bento'; import { AnyComponentContext } from './contexts/AnyComponentContext'; import type { ComponentHandler } from './interfaces/ComponentHandler'; import type { ParsedCustomId } from './util/ParseCustomId'; export declare type CloseHandler = () => Promise; export declare enum ComponentManagerEvent { /** * Fired when a component handler was successfully executed * @param ctx AnyComponentContext * @param mili Miliseconds */ COMPONENT_SUCCESS = "componentSuccess", /** * Fired when a component handler throws an error * @param error Error * @param ctx AnyComponentContext * @param mili Miliseconds */ COMPONENT_FAILURE = "componentFailure" } export declare class ComponentsManager implements Component { name: string; api: ComponentAPI; private readonly prefixHandlers; private readonly messageHandlers; onUnload(): Promise; hasPrefixHandler(prefix: string): boolean; addPrefixHandler(prefix: string, handler: ComponentHandler, close?: CloseHandler): void; removePrefixHandler(prefix: string): void; hasMessageHandler(messageId: string): boolean; addMessageHandler(messageId: string, handler: ComponentHandler, close?: CloseHandler): void; removeMessageHandler(messageId: string): void; findHandler(ctx: AnyComponentContext, customId: ParsedCustomId): Promise; private handleInteraction; }