import type { ApplicationCommand as LilyApplicationCommand, PermissionFlags, Locale } from "lilybird";
export declare function ApplicationCommand({ name, description, defaultMemberPermissions, dmPermission, name_localizations, description_localizations, nsfw, children }: {
    name: string;
    description: string;
    defaultMemberPermissions?: Array<typeof PermissionFlags[keyof typeof PermissionFlags]> | null;
    dmPermission?: boolean | null;
    nsfw?: boolean;
    name_localizations?: Record<Locale, string> | null;
    description_localizations?: Record<Locale, string> | null;
    children?: Array<LilyApplicationCommand.Option.Structure>;
}): LilyApplicationCommand.Create.ApplicationCommandJSONParams;
type CommandWithChildren<T> = T & {
    children?: Array<LilyApplicationCommand.Option.ChoiceStructure>;
};
export declare function CommandOptions(props: LilyApplicationCommand.Option.ChoiceStructure): LilyApplicationCommand.Option.ChoiceStructure;
export declare function SubCommandOption(props: Omit<Omit<LilyApplicationCommand.Option.SubCommandStructure, "options"> & {
    children?: Array<LilyApplicationCommand.Option.Structure>;
}, "type">): LilyApplicationCommand.Option.Structure;
export declare function SubCommandGroupOption(props: Omit<Omit<LilyApplicationCommand.Option.SubCommandStructure, "options"> & {
    children: Array<LilyApplicationCommand.Option.Structure>;
}, "type">): LilyApplicationCommand.Option.Structure;
type StringCommandOption = Omit<LilyApplicationCommand.Option.StringStructure, "type">;
export declare function StringOption(props: CommandWithChildren<StringCommandOption> | LilyApplicationCommand.Option.WithAutocomplete<LilyApplicationCommand.Option.StringStructure>): LilyApplicationCommand.Option.Structure;
type NumericCommandOption = Omit<LilyApplicationCommand.Option.NumericStructure, "type">;
export declare function IntegerOption(props: CommandWithChildren<NumericCommandOption> | LilyApplicationCommand.Option.WithAutocomplete<LilyApplicationCommand.Option.NumericStructure>): LilyApplicationCommand.Option.Structure;
export declare function BooleanOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export declare function UserOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export declare function ChannelOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export declare function RoleOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export declare function MentionableOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export declare function NumberOption(props: CommandWithChildren<NumericCommandOption> | LilyApplicationCommand.Option.WithAutocomplete<LilyApplicationCommand.Option.NumericStructure>): LilyApplicationCommand.Option.Structure;
export declare function AttachmentOption(props: Omit<LilyApplicationCommand.Option.Base, "type">): LilyApplicationCommand.Option.Structure;
export {};
//# sourceMappingURL=command.d.ts.map