import { RequestTypes } from 'detritus-client-rest';
import { ShardClient } from '../client';
import { BaseCollection } from '../collections/basecollection';
import { BaseSet } from '../collections/baseset';
import { StagePrivacyLevels } from '../constants';
import { BaseStructure, BaseStructureData } from './basestructure';
import { Channel } from './channel';
import { Guild } from './guild';
import { VoiceState } from './voicestate';
/**
 * Stage Instance Structure
 * @category Structure
 */
export declare class StageInstance extends BaseStructure {
    readonly _keys: BaseSet<string>;
    channelId: string;
    deleted: boolean;
    discoverableDisabled: boolean;
    guildId: string;
    guildScheduledEventId: null | string;
    id: string;
    inviteCode: null | string;
    privacyLevel: StagePrivacyLevels;
    topic: string;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get channel(): Channel | null;
    get guild(): Guild | null;
    get isGuildOnly(): boolean;
    get isPublic(): boolean;
    get listeners(): BaseCollection<string, VoiceState>;
    get moderators(): BaseCollection<string, VoiceState>;
    get speakers(): BaseCollection<string, VoiceState>;
    get voiceStates(): BaseCollection<string, VoiceState>;
    edit(options?: RequestTypes.EditStageInstance): Promise<any>;
    fetch(): Promise<StageInstance>;
    delete(): Promise<any>;
}
