import { type PermissionStrings } from '../../common';
import { ApplicationCommandType, type ApplicationIntegrationType, type EntryPointCommandHandlerType, type InteractionContextType, type LocaleString } from '../../types';
import type { RegisteredMiddlewares } from '../decorators';
import type { EntryPointContext } from './entrycontext';
import type { ExtraProps, UsingClient } from './shared';
export declare abstract class EntryPointCommand {
    middlewares: (keyof RegisteredMiddlewares)[];
    __filePath?: string;
    __t?: {
        name: string | undefined;
        description: string | undefined;
    };
    name: string;
    type: ApplicationCommandType;
    nsfw?: boolean;
    integrationTypes: ApplicationIntegrationType[];
    contexts: InteractionContextType[];
    description: string;
    botPermissions?: bigint;
    dm?: boolean;
    handler: EntryPointCommandHandlerType;
    name_localizations?: Partial<Record<LocaleString, string>>;
    description_localizations?: Partial<Record<LocaleString, string>>;
    props: ExtraProps;
    toJSON(): {
        handler: EntryPointCommandHandlerType;
        name: string;
        type: ApplicationCommandType;
        nsfw: boolean | undefined;
        default_member_permissions: null;
        guild_id: null;
        description: string;
        name_localizations: Partial<Record<"id" | "en-US" | "en-GB" | "bg" | "zh-CN" | "zh-TW" | "hr" | "cs" | "da" | "nl" | "fi" | "fr" | "de" | "el" | "hi" | "hu" | "it" | "ja" | "ko" | "lt" | "no" | "pl" | "pt-BR" | "ro" | "ru" | "es-ES" | "es-419" | "sv-SE" | "th" | "tr" | "uk" | "vi", string>> | undefined;
        description_localizations: Partial<Record<"id" | "en-US" | "en-GB" | "bg" | "zh-CN" | "zh-TW" | "hr" | "cs" | "da" | "nl" | "fi" | "fr" | "de" | "el" | "hi" | "hu" | "it" | "ja" | "ko" | "lt" | "no" | "pl" | "pt-BR" | "ro" | "ru" | "es-ES" | "es-419" | "sv-SE" | "th" | "tr" | "uk" | "vi", string>> | undefined;
        dm_permission: boolean | undefined;
        contexts: InteractionContextType[];
        integration_types: ApplicationIntegrationType[];
    };
    reload(): Promise<void>;
    abstract run?(context: EntryPointContext): any;
    onAfterRun?(context: EntryPointContext, error: unknown | undefined): any;
    onRunError(context: EntryPointContext<never>, error: unknown): any;
    onMiddlewaresError(context: EntryPointContext<never>, error: string): any;
    onBotPermissionsFail(context: EntryPointContext<never>, permissions: PermissionStrings): any;
    onInternalError(client: UsingClient, command: EntryPointCommand, error?: unknown): any;
}
