import type { UserStructure, UsingClient, VoiceStateStructure } from '../';
import type { VoiceStateResource } from '../cache/resources/voice-states';
import { type GuildMemberStructure } from '../client/transformers';
import type { ObjectToLower } from '../common';
import type { APIVoiceState } from '../types';
import type { AllGuildVoiceChannels } from './channels';
import { Base } from './extra/Base';
export interface VoiceState extends Base, ObjectToLower<Omit<VoiceStateResource, 'member'>> {
}
export declare class VoiceState extends Base {
    protected withMember?: GuildMemberStructure;
    constructor(client: UsingClient, data: APIVoiceState);
    get isMuted(): boolean;
    member(force?: boolean): Promise<GuildMemberStructure>;
    user(force?: boolean): Promise<UserStructure>;
    channel(force?: boolean): Promise<AllGuildVoiceChannels | undefined>;
    setMute(mute?: boolean, reason?: string): Promise<GuildMemberStructure>;
    setDeaf(deaf?: boolean, reason?: string): Promise<GuildMemberStructure>;
    setSuppress(suppress?: boolean): Promise<void>;
    requestSpeak(date?: string | Date): Promise<undefined>;
    disconnect(reason?: string): Promise<GuildMemberStructure>;
    fetch(force?: boolean): Promise<VoiceStateStructure>;
    setChannel(channel_id: null | string, reason?: string): Promise<GuildMemberStructure>;
}
