import { ApplicationCommandOptions } from './ApplicationCommandOptions';
import { ApplicationCommandType } from './ApplicationCommandType';
import type { Snowflake } from './@type';
import type { ApplicationCommandLocalizationPartial } from './ApplicationCommandLocalization';
import { IntegrationType } from './IntegrationTypes';
import { InteractionContextType } from './InteractionContextType';
export interface ICommand {
    name: string;
    type: ApplicationCommandType;
    description: string;
    options: ApplicationCommandOptions[];
    guild_id?: Snowflake;
    name_localizations?: ApplicationCommandLocalizationPartial;
    description_localizations?: ApplicationCommandLocalizationPartial;
    default_member_permissions?: string | bigint;
    dm_permission?: boolean;
    integration_types?: IntegrationType[];
    contexts?: InteractionContextType[];
    nsfw?: boolean;
}
export interface Command extends ICommand {
}
export declare class Command implements ICommand {
    Type(type: ApplicationCommandType): this;
    Name(name: string): this;
    Description(description: string): this;
    Permissions(...permissions: []): this;
    ForGuild(id: Snowflake): this;
    Options(options: ApplicationCommandOptions[]): this;
    Localization(options: ApplicationCommandLocalizationPartial): this;
    DescriptionLocalization(options: ApplicationCommandLocalizationPartial): this;
    ForDMS(dms: boolean): this;
    IntegrationTypes(types: IntegrationType[]): this;
    ContextTypes(contexts: InteractionContextType[]): this;
    ForNSFW(nsfw: boolean): this;
    toJSON(): ICommand;
}
//# sourceMappingURL=Command.d.ts.map