/*!
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */
import { Attachment, CacheType, CommandInteractionOption, CommandInteractionOptionResolver, GuildMember, Message, Role, User } from "discord.js";
import { APIInteractionDataResolvedGuildMember, APIRole } from "discord-api-types/v10";
export declare class RexSlashInteractionOptionsResolver {
    private resolver;
    /**
     * data received from the user
     */
    private _data?;
    constructor(resolver: CommandInteractionOptionResolver);
    get resolved(): Readonly<import("discord.js").CommandInteractionResolvedData<CacheType>> | null;
    get client(): import("discord.js").Client<boolean>;
    get data(): Map<string, CommandInteractionOption<CacheType>>;
    get(name: string, required: true): CommandInteractionOption<CacheType>;
    get(name: string, required?: false): CommandInteractionOption<CacheType> | null;
    getBoolean(name: string, required: true): boolean;
    getBoolean(name: string, required?: boolean): boolean | null;
    getChannel(name: string, required: true): NonNullable<CommandInteractionOption<CacheType>["channel"]>;
    getChannel(name: string, required?: boolean): NonNullable<CommandInteractionOption<CacheType>["channel"]> | null;
    getInteger(name: string, required: true): number;
    getInteger(name: string, required?: boolean): number | null;
    getNumber(name: string, required: true): number;
    getNumber(name: string, required?: boolean): number | null;
    getUser(name: string, required: true): User;
    getUser(name: string, required?: boolean): User | null;
    getMember(name: string): GuildMember | APIInteractionDataResolvedGuildMember | null;
    getMentionable(name: string, required: true): NonNullable<CommandInteractionOption<CacheType>["member" | "role" | "user"]>;
    getMentionable(name: string, required?: boolean): NonNullable<CommandInteractionOption<CacheType>["member" | "role" | "user"]> | null;
    getRole(name: string, required: true): Role | APIRole;
    getRole(name: string, required?: boolean): Role | APIRole | null;
    getString(name: string, required: true): string;
    getString(name: string, required?: boolean): string | null;
    getMessage(name: string, required: true): Message;
    getMessage(name: string, required?: boolean): Message | null;
    getAttachment(name: string, required: true): Attachment;
    getAttachment(name: string, required: boolean): Attachment | null;
    getFocused<E extends string | number>(getFull: true): {
        name: string;
        value: E;
    };
    getFocused<E extends string | number>(getFull?: false | undefined): E;
}
