import { List } from "ts-generic-collections-linq";
import { MEDIATYPE } from "../../connection/RESTService";
import { Contact } from "./Contact";
import { Bubble } from "./Bubble";
export {};
/**
 * @class
 * @name Participant
 * @public
 * @description
 *      This class Define a participant to a conference. <br>
 */
declare class Participant {
    private _id;
    private _jid_im;
    private _phoneNumber;
    private _moderator;
    private _muted;
    private _hold;
    private _talking;
    private _talkingTime;
    private _microphone;
    private _delegateCapability;
    private _connected;
    private _contact;
    private _associatedUserId;
    private _associatedGroupName;
    private _isOwner;
    constructor(id: string);
    /**
     *
     *  @name id
     * @return {string}
     * @description
     *    get the id of the participant. The Id of the particpant is NOT AT ALL related to the Id of a Contact.
     */
    get id(): string;
    /**
     *
     *  @name id
     * @param {string} value
     * @description
     *    set the id of the participant. The Id of the particpant is NOT AT ALL related to the Id of a Contact.
     */
    set id(value: string);
    get jid_im(): string;
    set jid_im(value: string);
    get phoneNumber(): string;
    set phoneNumber(value: string);
    get moderator(): boolean;
    set moderator(value: boolean);
    get muted(): boolean;
    set muted(value: boolean);
    get hold(): boolean;
    set hold(value: boolean);
    get connected(): boolean;
    set connected(value: boolean);
    get contact(): Contact;
    set contact(value: Contact);
    get talkingTime(): number;
    set talkingTime(value: number);
    get talking(): boolean;
    set talking(value: boolean);
    get microphone(): boolean;
    set microphone(value: boolean);
    get delegateCapability(): boolean;
    set delegateCapability(value: boolean);
    get associatedUserId(): string;
    set associatedUserId(value: string);
    get associatedGroupName(): string;
    set associatedGroupName(value: string);
    get isOwner(): boolean;
    set isOwner(value: boolean);
    ToString(): string;
}
/**
 * @class
 * @name Talker
 * @public
 * @description
 *      This class Define a participant talking in a conference. <br>
 */
declare class Talker {
    private _participant;
    private _talkingTime;
    private _publisher;
    private _simulcast;
    constructor(participant: Participant);
    get participant(): Participant;
    set participant(value: Participant);
    get talkingTime(): number;
    set talkingTime(value: number);
    get publisher(): boolean;
    set publisher(value: boolean);
    get simulcast(): boolean;
    set simulcast(value: boolean);
    ToString(): string;
}
/**
 * @class
 * @name Silent
 * @public
 * @description
 *      This class Define a participant talking in a conference. <br>
 */
declare class Silent {
    private _participant;
    private _talkingTime;
    private _publisher;
    private _simulcast;
    constructor(participant: Participant);
    get participant(): Participant;
    set participant(value: Participant);
    get talkingTime(): string;
    set talkingTime(value: string);
    get publisher(): boolean;
    set publisher(value: boolean);
    get simulcast(): boolean;
    set simulcast(value: boolean);
    ToString(): string;
}
declare class Publisher {
    get simulcast(): boolean;
    set simulcast(value: boolean);
    private _id;
    private _jid_im;
    private _media;
    private _participant;
    private _simulcast;
    get participant(): Participant;
    set participant(value: Participant);
    constructor(id: any);
    get id(): string;
    set id(value: string);
    get jid_im(): string;
    set jid_im(value: string);
    get media(): List<string>;
    set media(value: List<string>);
    ToString(): string;
}
declare class Service {
    private _serviceId;
    private _serviceType;
    get serviceId(): string;
    set serviceId(value: string);
    get serviceType(): string;
    set serviceType(value: string);
    constructor();
}
declare class ConferenceSession {
    get bubble(): Bubble;
    set bubble(value: Bubble);
    get ownerJidIm(): string;
    set ownerJidIm(value: string);
    get services(): List<Service>;
    set services(value: List<Service>);
    private _id;
    private _active;
    private _muted;
    private _locked;
    private _talkerActive;
    private _recordStarted;
    private _recordingState;
    private _recordingUserId;
    private _participantCount;
    private _mediaType;
    private _reason;
    private _participants;
    private _publishers;
    private _talkers;
    private _silents;
    private _replacedByConference;
    private _replaceConference;
    private _services;
    private _ownerJidIm;
    private _bubble;
    constructor(id: string, participants?: List<Participant>, mediaType?: MEDIATYPE);
    get id(): string;
    set id(value: string);
    get active(): boolean;
    set active(value: boolean);
    get muted(): boolean;
    set muted(value: boolean);
    get locked(): boolean;
    set locked(value: boolean);
    get recordStarted(): boolean;
    set recordStarted(value: boolean);
    get recordingState(): boolean;
    set recordingState(value: boolean);
    get recordingUserId(): boolean;
    set recordingUserId(value: boolean);
    get participantCount(): number;
    set participantCount(value: number);
    get mediaType(): string;
    set mediaType(value: string);
    get participants(): List<Participant>;
    set participants(value: List<Participant>);
    get publishers(): List<Publisher>;
    set publishers(value: List<Publisher>);
    get talkers(): List<Talker>;
    set talkers(value: List<Talker>);
    get silents(): List<Silent>;
    set silents(value: List<Silent>);
    get talkerActive(): boolean;
    set talkerActive(value: boolean);
    get reason(): string;
    set reason(value: string);
    get replacedByConference(): ConferenceSession;
    set replacedByConference(value: ConferenceSession);
    get replaceConference(): ConferenceSession;
    set replaceConference(conference: ConferenceSession);
    ToString(): string;
    reset(): void;
}
export { Publisher, Participant, ConferenceSession, Talker, Silent, Service };
