import type { ConferencePermission, ConferenceStatus } from '@voxeet/voxeet-web-sdk/types/models/Conference';
import type Conference from '@voxeet/voxeet-web-sdk/types/models/Conference';
import type ConferenceOptions from '@voxeet/voxeet-web-sdk/types/models/ConferenceOptions';
import type { JoinOptions } from '@voxeet/voxeet-web-sdk/types/models/Options';
import type { Participant } from '@voxeet/voxeet-web-sdk/types/models/Participant';
export default class ConferenceService {
    static create(options: ConferenceOptions): Promise<Conference>;
    static current(): Conference | null;
    static participants(): Map<string, Participant>;
    static fetch(conferenceId: string): Promise<Conference>;
    static join(conference: Conference, options: JoinOptions): Promise<Conference>;
    static stopVideo(participant: Participant): Promise<void>;
    static startVideo(participant: Participant): Promise<any>;
    static startAudio(participant: Participant): Promise<void>;
    static stopAudio(participant: Participant): Promise<void>;
    static isSpeaking(participant: Participant, callback: (value: boolean) => void): any;
    static onParticipantsChange(handler: (data: Participant) => void): () => void;
    static onStreamsChange(handler: (data: Participant) => void): () => void;
    static onConferenceStatusChange(handler: (data: ConferenceStatus) => void): () => void;
    static onPermissionsChange(handler: (data: ConferencePermission[]) => void): () => void;
    static leave(): Promise<void>;
}
