import { ApplicationCommandOptionType, ApplicationCommandType } from "discord-api-types/v10";
import { ApplicationCommandData, ApplicationCommandResolvable, Awaitable, Client, FetchApplicationCommandOptions, Interaction, Message, Snowflake } from "discord.js";
import type { DRClientOptions, DRClientClass, DRCommandOptionType, DRCommandType } from "../types";
export declare class DRClient implements DRClientClass {
    wrapperClient: Client<boolean>;
    constructor(options: DRClientOptions);
    get application(): import("discord.js").ClientApplication;
    fetchUser(id: string): import("@discordjs/collection").Collection<string, import("discord.js").User> | Promise<import("discord.js").User>;
    fetchGuild(id: string): import("@discordjs/collection").Collection<string, import("discord.js").Guild> | Promise<import("discord.js").Guild>;
    fetchEmoji(id: string): import("discord.js").GuildEmoji | import("@discordjs/collection").Collection<string, import("discord.js").Guild>;
    createCommand(command: ApplicationCommandData, guildID?: Snowflake): Promise<import("discord.js").ApplicationCommand<{
        guild: import("discord.js").GuildResolvable;
    }>>;
    fetchCommand(id: Snowflake, options?: FetchApplicationCommandOptions): Promise<import("discord.js").ApplicationCommand<{
        guild: import("discord.js").GuildResolvable;
    }>>;
    deleteCommand(command: ApplicationCommandResolvable, guildID?: Snowflake): Promise<import("discord.js").ApplicationCommand<{
        guild: import("discord.js").GuildResolvable;
    }>>;
    editCommand(command: ApplicationCommandResolvable, data: ApplicationCommandData, guildID?: Snowflake): Promise<import("discord.js").ApplicationCommand<{}>>;
    setCommand(commands: ApplicationCommandData[], guildID?: Snowflake): Promise<import("@discordjs/collection").Collection<string, import("discord.js").ApplicationCommand<{}>>>;
    convertOptionType(option: DRCommandOptionType): ApplicationCommandOptionType;
    convertCommandType(type: DRCommandType): {
        CHAT_INPUT: ApplicationCommandType;
        USER: ApplicationCommandType;
        MESSAGE: ApplicationCommandType;
    };
    newInteractionListener(once: boolean, listener: ((interaction: Interaction) => Awaitable<void>)): void;
    newMessageListener(once: boolean, listener: ((message: Message) => Awaitable<void>)): void;
    debugListener(once: boolean, listener: ((info: string) => Awaitable<void>)): void;
    warnListener(once: boolean, listener: ((info: string) => Awaitable<void>)): void;
    errorListener(once: boolean, listener: ((info: Error) => Awaitable<void>)): void;
}
