import type { ComponentContext } from './contexts/ComponentContext'; import { AutoDeferType, GClient } from '../GClient'; export declare enum ComponentType { 'BUTTON' = 1, 'SELECT_MENU' = 2, 'MODAL' = 3 } export type ComponentInhibitor = ((ctx: ComponentContext) => boolean | any) | { run: ComponentInhibitor; }; export type ComponentInhibitors = Array; export interface ComponentOptions { name: string; type: Array; inhibitors?: ComponentInhibitors; guildId?: string; cooldown?: string; autoDefer?: AutoDeferType | keyof typeof AutoDeferType; fileName?: string; run?: (interaction: ComponentContext) => any; onError?: (interaction: ComponentContext, error: any) => any; } export declare class Component { client: GClient; name: string; type: Array; options: Partial; inhibitors: ComponentInhibitors; guildId?: string; private static defaults; cooldown?: string; fileName?: string; run: (ctx: ComponentContext) => any; onError?: (ctx: ComponentContext, error: any) => any; owner?: string; reloading: boolean; autoDefer?: AutoDeferType | keyof typeof AutoDeferType; constructor(options: ComponentOptions); initialize(client: GClient): void; unregister(): Component | undefined; inhibit(ctx: ComponentContext): Promise; reload(): Promise; static setDefaults(defaults: Partial): void; } //# sourceMappingURL=Component.d.ts.map