import type { UsingClient } from '..';
import type { ApplicationEmojiStructure, ApplicationStructure } from '../client';
import type { ApplicationEmojiResolvable, ObjectToLower } from '../common';
import type { APIApplication, RESTPatchAPIApplicationEmojiJSONBody, RESTPatchCurrentApplicationJSONBody } from '../types';
import { DiscordBase } from './extra/DiscordBase';
export interface Application extends ObjectToLower<APIApplication> {
}
/**
 * Due to current limitations, this is exclusively for the current application.
 */
export declare class Application extends DiscordBase<APIApplication> {
    constructor(client: UsingClient, data: APIApplication);
    /**
     * Fetch the current application.
     */
    fetch(): Promise<ApplicationStructure>;
    /**
     * Edit the current application.
     */
    edit(data: RESTPatchCurrentApplicationJSONBody): Promise<ApplicationStructure>;
    /**
     * Get an activity instance.
     */
    getActivityInstance(instanceId: string): Promise<import("../types").RestGetAPIApplicationActivityInstanceResult>;
    emojis: {
        /**
         * Get an application emoji.
         */
        fetch: (id: string) => Promise<ApplicationEmojiStructure>;
        /**
         * Get the application emojis.
         */
        list: () => Promise<ApplicationEmojiStructure[]>;
        /**
         * Create an application emoji.
         */
        create: (data: ApplicationEmojiResolvable) => Promise<ApplicationEmojiStructure>;
        /**
         * Edit an application emoji.
         */
        edit: (emojiId: string, body: RESTPatchAPIApplicationEmojiJSONBody) => Promise<ApplicationEmojiStructure>;
    };
}
