type Nullable<T> = T | null | undefined
export declare namespace vonage {
    interface CombinedEvents extends vonage.VoiceEvents, vonage.ChatEvents {
    }
}
export declare namespace vonage {
    const VoiceChannelTypeObject: {
        get app(): string;
        get phone(): string;
        get sip(): string;
        get websocket(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    class CombinedClientJS implements vonage.IChatClientJS, vonage.IVoiceClientJS {
        constructor(config: vonage.InitConfigObjectJS, http: vonage.HttpClientJS, socket: vonage.SocketClientJS, media: vonage.MediaClientJS);
        get media(): vonage.MediaClientJS;
        get core(): any/* com.vonage.clientcore.core.CoreClientWithMedia */;
        get emitter(): Nullable<vonage.CombinedEvents>;
        set emitter(value: Nullable<vonage.CombinedEvents>);
        createConversation(parameters: Nullable<vonage.CreateConversationParametersJS>): Promise<string>;
        joinConversation(cid: string): Promise<string>;
        inviteToConversation(cid: string, username: string): Promise<string>;
        leaveConversation(cid: string): Promise<any>;
        deleteConversation(cid: string): Promise<any>;
        getConversations(parameters: Nullable<vonage.GetConversationsParametersJS>): Promise<vonage.ConversationsPageJS>;
        getConversationMembers(cid: string, parameters: Nullable<vonage.GetConversationMembersParametersJS>): Promise<vonage.MembersPageJS>;
        getConversationEvents(cid: string, parameters: Nullable<vonage.GetConversationEventsParametersJS>): Promise<vonage.EventsPageJS>;
        getConversationMember(cid: string, mid: string): Promise<vonage.MemberJS>;
        sendMessageTextEvent(cid: string, text: string): Promise<string>;
        sendMessageCustomEvent(cid: string, customData: string): Promise<string>;
        sendMessageImageEvent(cid: string, imageURL: URL): Promise<string>;
        sendMessageVideoEvent(cid: string, videoURL: URL): Promise<string>;
        sendMessageFileEvent(cid: string, fileURL: URL): Promise<string>;
        sendMessageAudioEvent(cid: string, audioURL: URL): Promise<string>;
        sendMessageVCardEvent(cid: string, vCardURL: URL): Promise<string>;
        sendMessageLocationEvent(cid: string, location: vonage.LocationJS): Promise<string>;
        sendMessageTemplateEvent(cid: string, templateObject: vonage.TemplateObjectJS, whatsappObject: vonage.WhatsappObjectJS): Promise<string>;
        sendEphemeralEvent(cid: string, customData: string): Promise<string>;
        sendCustomEvent(cid: string, eventType: string, customData: string): Promise<string>;
        deleteEvent(id: number, conversationId: string): Promise<any>;
        sendMessageSeenEvent(id: number, conversationId: string): Promise<any>;
        updateConversation(conversationId: string, parameters: vonage.UpdateConversationParametersJS): Promise<any>;
        setConfig(config: vonage.ConfigObjectJS): void;
        createSession(token: string, sessionId: Nullable<string>): Promise<string>;
        deleteSession(): Promise<any>;
        refreshSession(token: string): Promise<any>;
        getConversation(conversationIdOrName: string): Promise<vonage.ConversationJS>;
        getUser(userIdOrName: string): Promise<vonage.UserJS>;
        getPeerConnection(id: string): any;
        getAudioOutputElement(): any;
        serverCall(context: Nullable<Json>): Promise<string>;
        reconnectCall(legId: string): Promise<any>;
        getLeg(legId: string): Promise<vonage.LegJS>;
        getCallLegs(callId: string, parameters: Nullable<vonage.GetCallLegsParametersJS>): Promise<vonage.LegsPageJS>;
        answer(callId: string): Promise<any>;
        reject(callId: string): Promise<any>;
        hangup(callId: string, reasonText: Nullable<string>, reasonCode: Nullable<string>): Promise<any>;
        say(callId: string, params: vonage.CallSayParams): Promise<any>;
        mute(callId: string): Promise<any>;
        unmute(callId: string): Promise<any>;
        enableEarmuff(callId: string): Promise<any>;
        disableEarmuff(callId: string): Promise<any>;
        sendDTMF(callId: string, digits: string): Promise<any>;
    }
}
export declare namespace vonage {
    abstract class EventStateTypeJS {
        private constructor();
        static get SEEN(): vonage.EventStateTypeJS & {
            get name(): "SEEN";
            get ordinal(): 0;
        };
        static get DELIVERED(): vonage.EventStateTypeJS & {
            get name(): "DELIVERED";
            get ordinal(): 1;
        };
        static get SUBMITTED(): vonage.EventStateTypeJS & {
            get name(): "SUBMITTED";
            get ordinal(): 2;
        };
        static get REJECTED(): vonage.EventStateTypeJS & {
            get name(): "REJECTED";
            get ordinal(): 3;
        };
        static get UNDELIVERABLE(): vonage.EventStateTypeJS & {
            get name(): "UNDELIVERABLE";
            get ordinal(): 4;
        };
        static get NONE(): vonage.EventStateTypeJS & {
            get name(): "NONE";
            get ordinal(): 5;
        };
        get name(): "SEEN" | "DELIVERED" | "SUBMITTED" | "REJECTED" | "UNDELIVERABLE" | "NONE";
        get ordinal(): 0 | 1 | 2 | 3 | 4 | 5;
        static values(): Array<vonage.EventStateTypeJS>;
        static valueOf(value: string): vonage.EventStateTypeJS;
    }
    class EventStateJS {
        private constructor();
        get seen(): Nullable<string>;
        get delivered(): Nullable<string>;
        get submitted(): Nullable<string>;
        get rejected(): Nullable<string>;
        get undeliverable(): Nullable<string>;
        get current(): string;
    }
    class EventsPageJS {
        private constructor();
        get events(): Array<vonage.PersistentConversationEventJS>;
        get previousCursor(): Nullable<string>;
        get nextCursor(): Nullable<string>;
    }
    interface FromJS {
    }
    class EmbeddedInfoJS implements vonage.FromJS {
        private constructor();
        get kind(): string;
        get memberId(): Nullable<string>;
        get user(): vonage.UserJS;
    }
    const SystemJS: {
        get kind(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    } & vonage.FromJS;
    interface ConversationEventJS {
    }
    interface NonPersistentConversationEventJS extends vonage.ConversationEventJS {
    }
    interface PersistentConversationEventJS extends vonage.ConversationEventJS {
    }
    interface MemberEventJS {
    }
    class MemberEventBodyJS {
        private constructor();
        get memberId(): string;
        get user(): vonage.UserJS;
        get channel(): vonage.ChannelJS;
    }
    class MemberInvitedEventJS implements vonage.MemberEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MemberEventBodyJS;
    }
    class MemberJoinedEventJS implements vonage.MemberEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MemberEventBodyJS;
    }
    class MemberLeftEventJS implements vonage.MemberEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MemberEventBodyJS;
    }
    interface JSONBodyEventJS {
    }
    class CustomConversationEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get eventType(): Nullable<string>;
        get body(): any;
    }
    class EphemeralConversationEventJS implements vonage.NonPersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): any;
    }
    class EventStateBodyJS {
        private constructor();
        get eventId(): number;
    }
    class EventDeleteConversationEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
    class MessageDeliveredEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
    class MessageRejectedEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
    class MessageUndeliverableEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
    class MessageSubmittedEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
    class MessageSeenEventJS implements vonage.PersistentConversationEventJS, vonage.JSONBodyEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.EventStateBodyJS;
    }
}
export declare namespace vonage {
    interface TemplateObjectJS {
        readonly name: string;
        readonly parameters?: Nullable<Array<string>>;
    }
    interface WhatsappObjectJS {
        readonly policy: string;
        readonly locale: string;
    }
    interface LocationJS {
        readonly longitude: string;
        readonly latitude: string;
        readonly name?: Nullable<string>;
        readonly address?: Nullable<string>;
    }
}
export declare namespace vonage {
    interface MessageEventJS {
    }
    interface MessageEventBodyJS {
    }
    class MessageTextEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageTextEventJS.MessageTextEventBody;
        get memberStatuses(): any;
    }
    namespace MessageTextEventJS {
        class MessageTextEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get text(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageCustomEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageCustomEventJS.MessageCustomEventBody;
        get memberStatuses(): any;
    }
    namespace MessageCustomEventJS {
        class MessageCustomEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get customData(): any;
            get deleted(): Nullable<string>;
        }
    }
    class MessageAudioEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageAudioEventJS.MessageAudioEventBody;
        get memberStatuses(): any;
    }
    namespace MessageAudioEventJS {
        class MessageAudioEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get audioUrl(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageVideoEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageVideoEventJS.MessageVideoEventBody;
        get memberStatuses(): any;
    }
    namespace MessageVideoEventJS {
        class MessageVideoEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get videoUrl(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageImageEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageImageEventJS.MessageImageEventBody;
        get memberStatuses(): any;
    }
    namespace MessageImageEventJS {
        class MessageImageEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get imageUrl(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageFileEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageFileEventJS.MessageFileEventBody;
        get memberStatuses(): any;
    }
    namespace MessageFileEventJS {
        class MessageFileEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get fileUrl(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageVCardEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageVCardEventJS.MessageVCardEventBody;
        get memberStatuses(): any;
    }
    namespace MessageVCardEventJS {
        class MessageVCardEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get vcardUrl(): string;
            get deleted(): Nullable<string>;
        }
    }
    class MessageLocationEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get body(): vonage.MessageLocationEventJS.MessageLocationEventBody;
        get memberStatuses(): any;
    }
    namespace MessageLocationEventJS {
        class MessageLocationEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get location(): vonage.MessageLocationEventJS.Location;
            get deleted(): Nullable<string>;
        }
        class Location {
            private constructor();
            get longitude(): string;
            get latitude(): string;
            get name(): Nullable<string>;
            get address(): Nullable<string>;
        }
    }
    class MessageTemplateEventJS implements vonage.MessageEventJS, vonage.PersistentConversationEventJS {
        private constructor();
        get kind(): string;
        get id(): number;
        get timestamp(): string;
        get conversationId(): string;
        get from(): vonage.FromJS;
        get memberStatus(): any;
        get body(): vonage.MessageTemplateEventJS.MessageTemplateEventBody;
    }
    namespace MessageTemplateEventJS {
        class MessageTemplateEventBody implements vonage.MessageEventBodyJS {
            private constructor();
            get body(): any/* com.vonage.clientcore.core.api.models.MessageTemplateEvent.Body */;
            get template(): vonage.MessageTemplateEventJS.TemplateObject;
            get whatsapp(): vonage.MessageTemplateEventJS.WhatsappObject;
            get deleted(): Nullable<string>;
            copy(body?: any/* com.vonage.clientcore.core.api.models.MessageTemplateEvent.Body */): vonage.MessageTemplateEventJS.MessageTemplateEventBody;
            toString(): string;
            hashCode(): number;
            equals(other: Nullable<any>): boolean;
        }
        class TemplateObject {
            private constructor();
            get name(): string;
            get parameters(): Nullable<Array<string>>;
        }
        class WhatsappObject {
            private constructor();
            get policy(): string;
            get locale(): string;
        }
    }
}
export declare namespace vonage {
    abstract class PresentingOrderJS {
        private constructor();
        static get ASC(): vonage.PresentingOrderJS & {
            get name(): "ASC";
            get ordinal(): 0;
        };
        static get DESC(): vonage.PresentingOrderJS & {
            get name(): "DESC";
            get ordinal(): 1;
        };
        get name(): "ASC" | "DESC";
        get ordinal(): 0 | 1;
        get corePresentingOrder(): any/* com.vonage.clientcore.core.api.models.PresentingOrder */;
        static values(): Array<vonage.PresentingOrderJS>;
        static valueOf(value: string): vonage.PresentingOrderJS;
    }
    abstract class OrderByJS {
        private constructor();
        static get CREATED(): vonage.OrderByJS & {
            get name(): "CREATED";
            get ordinal(): 0;
        };
        static get CUSTOM_SORT_KEY(): vonage.OrderByJS & {
            get name(): "CUSTOM_SORT_KEY";
            get ordinal(): 1;
        };
        get name(): "CREATED" | "CUSTOM_SORT_KEY";
        get ordinal(): 0 | 1;
        get coreOrderBy(): any/* com.vonage.clientcore.core.api.models.OrderBy */;
        static values(): Array<vonage.OrderByJS>;
        static valueOf(value: string): vonage.OrderByJS;
    }
    class ConversationJS {
        private constructor();
        get id(): string;
        get name(): string;
        get timestamp(): vonage.ConversationTimestampJS;
        get memberId(): Nullable<string>;
        get memberState(): Nullable<string>;
        get displayName(): Nullable<string>;
        get imageUrl(): Nullable<string>;
        get state(): Nullable<string>;
        get properties(): vonage.ConversationJS.Properties;
    }
    namespace ConversationJS {
        class Properties {
            private constructor();
            get ttl(): Nullable<number>;
            get customSortKey(): Nullable<string>;
            get customData(): any;
        }
    }
    const ConversationStateJS: {
        get ACTIVE(): string;
        get INACTIVE(): string;
        get DELETED(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    class ConversationTimestampJS {
        private constructor();
        get created(): Nullable<string>;
        get updated(): Nullable<string>;
        get destroyed(): Nullable<string>;
    }
    class ConversationsPageJS {
        private constructor();
        get conversations(): Array<vonage.ConversationJS>;
        get previousCursor(): Nullable<string>;
        get nextCursor(): Nullable<string>;
    }
    class MemberJS {
        private constructor();
        get id(): string;
        get state(): string;
        get user(): Nullable<vonage.UserJS>;
        get channel(): Nullable<vonage.MemberChannelJS>;
        get timestamp(): Nullable<vonage.MemberTimestampJS>;
    }
    const MemberStateJSObj: {
        get INVITED(): string;
        get JOINED(): string;
        get LEFT(): string;
        get UNKNOWN(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    class MemberTimestampJS {
        private constructor();
        get invited(): Nullable<string>;
        get joined(): Nullable<string>;
        get left(): Nullable<string>;
    }
    class MembersPageJS {
        private constructor();
        get members(): Array<vonage.MemberJS>;
        get previousCursor(): Nullable<string>;
        get nextCursor(): Nullable<string>;
    }
    class UserJS {
        private constructor();
        get id(): string;
        get name(): string;
        get displayName(): Nullable<string>;
        get channels(): Nullable<vonage.UserChannelsJS>;
        get timestamp(): Nullable<vonage.UserTimestampJS>;
        get imageUrl(): Nullable<string>;
        get customData(): any;
    }
    class UserTimestampJS {
        private constructor();
        get created(): Nullable<string>;
        get updated(): Nullable<string>;
        get destroyed(): Nullable<string>;
    }
    class UserChannelsJS {
        private constructor();
        get app(): Nullable<Array<vonage.ChannelJS>>;
        get phone(): Nullable<Array<vonage.ChannelJS>>;
        get pstn(): Nullable<Array<vonage.ChannelJS>>;
        get sip(): Nullable<Array<vonage.ChannelJS>>;
        get vbc(): Nullable<Array<vonage.ChannelJS>>;
        get websocket(): Nullable<Array<vonage.ChannelJS>>;
        get sms(): Nullable<Array<vonage.ChannelJS>>;
        get mms(): Nullable<Array<vonage.ChannelJS>>;
        get whatsapp(): Nullable<Array<vonage.ChannelJS>>;
        get viber(): Nullable<Array<vonage.ChannelJS>>;
        get messenger(): Nullable<Array<vonage.ChannelJS>>;
    }
    class MemberChannelJS {
        private constructor();
        get type(): string;
        get from(): Nullable<vonage.ChannelJS>;
        get to(): Nullable<vonage.ChannelJS>;
    }
    class ChannelJS {
        private constructor();
        get id(): Nullable<string>;
        get number(): Nullable<string>;
    }
    class LegChannelJS {
        private constructor();
        get type(): Nullable<string>;
        get user(): Nullable<string>;
        get number(): Nullable<string>;
    }
    class MediaStateJS {
        private constructor();
        get mute(): Nullable<boolean>;
        get earmuff(): Nullable<boolean>;
        get play_stream(): Nullable<boolean>;
        get recording(): Nullable<boolean>;
        get transcribing(): Nullable<boolean>;
        get tts(): Nullable<boolean>;
    }
    class LegJS {
        private constructor();
        get id(): string;
        get type(): string;
        get direction(): string;
        get conversationId(): string;
        get status(): string;
        get startTime(): string;
        get endTime(): string;
        get from(): vonage.LegChannelJS;
        get to(): vonage.LegChannelJS;
        get mediaState(): Nullable<vonage.MediaStateJS>;
    }
    class LegsPageJS {
        private constructor();
        get legs(): Array<vonage.LegJS>;
        get previousCursor(): Nullable<string>;
        get nextCursor(): Nullable<string>;
    }
    const ChannelTypeObj: {
        get APP(): string;
        get PHONE(): string;
        get PSTN(): string;
        get SIP(): string;
        get VBC(): string;
        get WEBSOCKET(): string;
        get SMS(): string;
        get MMS(): string;
        get WHATSAPP(): string;
        get VIBER(): string;
        get MESSENGER(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
}
export declare namespace vonage {
    const CSErrorCodesJS: {
        get CONVERSATION_DUPLICATE_NAME(): string;
        get MEMBER_ALREADY_JOINED(): string;
        get MEMBER_ALREADY_INVITED(): string;
        get CONVERSATION_NOT_FOUND(): string;
        get MEMBER_NOT_FOUND(): string;
        get USER_NOT_FOUND(): string;
        get INVALID_CURSOR(): string;
        get VALIDATION_FAIL(): string;
        get CONVERSATION_MAX_NUMBER_OF_MEMBERS(): string;
        get CUSTOM_DATA_OVERALL_LIMIT_EXCEEDED(): string;
    };
    const SessionErrorCodesJS: {
        get EMPTY_TOKEN(): string;
        get FORCED_DISCONNECT(): string;
        get TIMEOUT(): string;
        get INTERNAL_FAILURE(): string;
        get NO_ACTIVE_SESSION(): string;
        get ALREADY_ACTIVE_SESSION(): string;
        get INVALID_TOKEN(): string;
        get EXPIRED_TOKEN(): string;
        get INVALID_USER(): string;
        get AUTHORIZATION_ERROR(): string;
        get INVALID_SESSION(): string;
        get MAX_OPEN_SESSIONS(): string;
        get INVALID_SOCKET_TRANSPORT(): string;
        get CLIENT_DISCONNECT(): string;
        get PING_TIMEOUT_DISCONNECT(): string;
        get TRANSPORT_CLOSED_DISCONNECT(): string;
    };
}
export declare namespace vonage {
    class VonageErrorJS extends Error {
        private constructor();
        get type(): string;
        get code(): Nullable<string>;
        get kmpCause(): Nullable<Error>;
    }
    const VonageErrorTypeJsObject: {
        get CS_ERROR(): string;
        get NETWORK_ERROR(): string;
        get SESSION_ERROR(): string;
        get INTERNAL_ERROR(): string;
        get UNKNOWN_ERROR(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    abstract class MediaClientErrorJS {
        protected constructor();
    }
    class PeerConnectionNotFoundJS extends vonage.MediaClientErrorJS {
        constructor(legId: string);
        get legId(): string;
        copy(legId?: string): vonage.PeerConnectionNotFoundJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class TrackNotFoundJS extends vonage.MediaClientErrorJS {
        constructor(legId: string);
        get legId(): string;
        copy(legId?: string): vonage.TrackNotFoundJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class ProcessAnswerErrorJS extends vonage.MediaClientErrorJS {
        constructor(legId: string, message?: Nullable<string>);
        get legId(): string;
        get message(): Nullable<string>;
        copy(legId?: string, message?: Nullable<string>): vonage.ProcessAnswerErrorJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class CreateAnswerErrorJS extends vonage.MediaClientErrorJS {
        constructor(message?: Nullable<string>);
        get message(): Nullable<string>;
        copy(message?: Nullable<string>): vonage.CreateAnswerErrorJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class CreateOfferErrorJS extends vonage.MediaClientErrorJS {
        constructor(message?: Nullable<string>);
        get message(): Nullable<string>;
        copy(message?: Nullable<string>): vonage.CreateOfferErrorJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
}
export declare namespace vonage {
    interface ChatEvents extends vonage.CoreClientEvents {
        conversationEvent(event: vonage.ConversationEventJS): void;
    }
}
export declare namespace vonage {
    interface IChatClientJS extends vonage.ICoreClientJS {
        readonly core: any/* com.vonage.clientcore.core.CoreClient */;
        createConversation(parameters: Nullable<vonage.CreateConversationParametersJS>): Promise<string>;
        joinConversation(cid: string): Promise<string>;
        inviteToConversation(cid: string, username: string): Promise<string>;
        leaveConversation(cid: string): Promise<any>;
        deleteConversation(cid: string): Promise<any>;
        getConversations(parameters: Nullable<vonage.GetConversationsParametersJS>): Promise<vonage.ConversationsPageJS>;
        getConversationMembers(cid: string, parameters: Nullable<vonage.GetConversationMembersParametersJS>): Promise<vonage.MembersPageJS>;
        getConversationEvents(cid: string, parameters: Nullable<vonage.GetConversationEventsParametersJS>): Promise<vonage.EventsPageJS>;
        getConversationMember(cid: string, mid: string): Promise<vonage.MemberJS>;
        sendMessageTextEvent(cid: string, text: string): Promise<string>;
        sendMessageCustomEvent(cid: string, customData: string): Promise<string>;
        sendMessageImageEvent(cid: string, imageURL: URL): Promise<string>;
        sendMessageVideoEvent(cid: string, videoURL: URL): Promise<string>;
        sendMessageFileEvent(cid: string, fileURL: URL): Promise<string>;
        sendMessageAudioEvent(cid: string, audioURL: URL): Promise<string>;
        sendMessageVCardEvent(cid: string, vCardURL: URL): Promise<string>;
        sendMessageLocationEvent(cid: string, location: vonage.LocationJS): Promise<string>;
        sendMessageTemplateEvent(cid: string, templateObject: vonage.TemplateObjectJS, whatsappObject: vonage.WhatsappObjectJS): Promise<string>;
        sendEphemeralEvent(cid: string, customData: string): Promise<string>;
        sendCustomEvent(cid: string, eventType: string, customData: string): Promise<string>;
        deleteEvent(id: number, conversationId: string): Promise<any>;
        sendMessageSeenEvent(id: number, conversationId: string): Promise<any>;
        updateConversation(conversationId: string, parameters: vonage.UpdateConversationParametersJS): Promise<any>;
    }
}
export declare namespace vonage {
    interface CoreClientEvents {
        reconnecting(): void;
        reconnection(): void;
        sessionError(reason: string): void;
    }
    interface VonageLoggerJS {
        readonly name: string;
        readonly minLogLevel?: Nullable<vonage.LoggingLevelJS>;
        readonly topics?: Nullable<Array<vonage.Topics>>;
        onLog(logLevel: string, topic: vonage.TopicJS, message: string): void;
    }
    interface ConfigObjectJS {
        readonly region?: Nullable<vonage.CoreClientConfigRegionJS>;
        readonly apiUrl?: Nullable<string>;
        readonly websocketUrl?: Nullable<string>;
        readonly websocketPath?: Nullable<string>;
        readonly rtcStatsTelemetry?: Nullable<boolean>;
        readonly autoReconnectMedia?: Nullable<boolean>;
        readonly noiseSuppression?: Nullable<boolean>;
    }
    interface InitConfigObjectJS extends vonage.ConfigObjectJS {
        readonly loggingLevel?: Nullable<vonage.LoggingLevelJS>;
        readonly customLoggers?: Nullable<Array<vonage.VonageLoggerJS>>;
        readonly disableInternalLogger?: Nullable<boolean>;
    }
}
export declare namespace vonage {
    const DEFAULT_REGION: vonage.CoreClientConfigRegionJS;
    const DEFAULT_LOGGING_LEVEL: vonage.LoggingLevelJS;
    abstract class CoreClientConfigRegionJS {
        private constructor();
        static get AP(): vonage.CoreClientConfigRegionJS & {
            get name(): "AP";
            get ordinal(): 0;
        };
        static get EU(): vonage.CoreClientConfigRegionJS & {
            get name(): "EU";
            get ordinal(): 1;
        };
        static get US(): vonage.CoreClientConfigRegionJS & {
            get name(): "US";
            get ordinal(): 2;
        };
        get name(): "AP" | "EU" | "US";
        get ordinal(): 0 | 1 | 2;
        get coreRegion(): any/* com.vonage.clientcore.core.api.ClientConfigRegion */;
        static values(): Array<vonage.CoreClientConfigRegionJS>;
        static valueOf(value: string): vonage.CoreClientConfigRegionJS;
    }
    class CoreClientConfigJS implements vonage.ConfigObjectJS {
        constructor(region?: vonage.CoreClientConfigRegionJS);
        get region(): vonage.CoreClientConfigRegionJS;
        get apiUrl(): string;
        set apiUrl(value: string);
        get websocketUrl(): string;
        set websocketUrl(value: string);
        get websocketPath(): string;
        set websocketPath(value: string);
        get rtcStatsTelemetry(): boolean;
        set rtcStatsTelemetry(value: boolean);
        get autoReconnectMedia(): boolean;
        set autoReconnectMedia(value: boolean);
        get noiseSuppression(): boolean;
    }
    class TopicJS {
        constructor(name: string, tag: string);
        get name(): string;
        get tag(): string;
        copy(name?: string, tag?: string): vonage.TopicJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    abstract class Topics {
        private constructor();
        static get HTTP(): vonage.Topics & {
            get name(): "HTTP";
            get ordinal(): 0;
        };
        static get WS(): vonage.Topics & {
            get name(): "WS";
            get ordinal(): 1;
        };
        static get MEDIA(): vonage.Topics & {
            get name(): "MEDIA";
            get ordinal(): 2;
        };
        static get API(): vonage.Topics & {
            get name(): "API";
            get ordinal(): 3;
        };
        static get STORE(): vonage.Topics & {
            get name(): "STORE";
            get ordinal(): 4;
        };
        static get REDUCER(): vonage.Topics & {
            get name(): "REDUCER";
            get ordinal(): 5;
        };
        static get DEFAULT(): vonage.Topics & {
            get name(): "DEFAULT";
            get ordinal(): 6;
        };
        get name(): "HTTP" | "WS" | "MEDIA" | "API" | "STORE" | "REDUCER" | "DEFAULT";
        get ordinal(): 0 | 1 | 2 | 3 | 4 | 5 | 6;
        static values(): Array<vonage.Topics>;
        static valueOf(value: string): vonage.Topics;
    }
    function createVonageLoggerJS(name: string, minLogLevel: vonage.LoggingLevelJS | undefined, topics: Array<vonage.Topics> | undefined, onLog: (p0: string, p1: vonage.TopicJS, p2: string) => void): vonage.VonageLoggerJS;
    abstract class LoggingLevelJS {
        private constructor();
        static get Verbose(): vonage.LoggingLevelJS & {
            get name(): "Verbose";
            get ordinal(): 0;
        };
        static get Debug(): vonage.LoggingLevelJS & {
            get name(): "Debug";
            get ordinal(): 1;
        };
        static get Info(): vonage.LoggingLevelJS & {
            get name(): "Info";
            get ordinal(): 2;
        };
        static get Warn(): vonage.LoggingLevelJS & {
            get name(): "Warn";
            get ordinal(): 3;
        };
        static get Error(): vonage.LoggingLevelJS & {
            get name(): "Error";
            get ordinal(): 4;
        };
        static get Assert(): vonage.LoggingLevelJS & {
            get name(): "Assert";
            get ordinal(): 5;
        };
        get name(): "Verbose" | "Debug" | "Info" | "Warn" | "Error" | "Assert";
        get ordinal(): 0 | 1 | 2 | 3 | 4 | 5;
        static values(): Array<vonage.LoggingLevelJS>;
        static valueOf(value: string): vonage.LoggingLevelJS;
    }
    const SessionErrorReasonJsObject: {
        get EXPIRED_TOKEN(): string;
        get TRANSPORT_CLOSED(): string;
        get PING_TIMEOUT(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    interface ICoreClientJS {
        readonly core: any/* com.vonage.clientcore.core.CoreClient */;
        setConfig(config: vonage.ConfigObjectJS): void;
        createSession(token: string, sessionId: Nullable<string>): Promise<string>;
        deleteSession(): Promise<any>;
        refreshSession(token: string): Promise<any>;
        getConversation(conversationIdOrName: string): Promise<vonage.ConversationJS>;
        getUser(userIdOrName: string): Promise<vonage.UserJS>;
    }
}
export declare namespace vonage {
    interface VoiceEvents extends vonage.CoreClientEvents {
        callInvite(callId: string, from: string, channelType: string): void;
        callInviteCancel(callId: string, reason: string): void;
        callTransfer(callId: string, conversationId: string): void;
        mute(callId: string, legId: string, isMuted: boolean): void;
        earmuff(callId: string, legId: string, earmuffStatus: boolean): void;
        dtmf(callId: string, legId: string, digits: string): void;
        callHangup(callId: string, callQuality: vonage.RTCQualityJS, reason: string): void;
        legStatusUpdate(callId: string, legId: string, status: string): void;
        callMediaReconnecting(callId: string): void;
        callMediaReconnection(callId: string): void;
        callMediaDisconnect(callId: string, reason: string): void;
        rtcStatsUpdate(rtcStats: vonage.RTCStatsJS, legId: string): void;
        callMediaError(callId: string, error: vonage.VonageErrorJS): void;
    }
    interface CallSayParams {
        readonly text: string;
        readonly level?: Nullable<number>;
        readonly loop?: Nullable<number>;
        readonly queue?: Nullable<boolean>;
        readonly voiceName?: Nullable<string>;
        readonly ssml?: Nullable<boolean>;
    }
}
export declare namespace vonage {
    const LegStatusJSObject: {
        get RINGING(): string;
        get ANSWERED(): string;
        get COMPLETED(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    const CallDisconnectReasonJSObject: {
        get NetworkChange(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    const HangupReasonJSObject: {
        get REMOTE_HANGUP(): string;
        get REMOTE_REJECT(): string;
        get REMOTE_NO_ANSWER_TIMEOUT(): string;
        get LOCAL_HANGUP(): string;
        get MEDIA_TIMEOUT(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    interface IVoiceClientJS extends vonage.ICoreClientJS {
        readonly media: vonage.MediaClientJS;
        readonly core: any/* com.vonage.clientcore.core.CoreClientWithMedia */;
        getPeerConnection(id: string): any;
        getAudioOutputElement(): any;
        serverCall(context: Nullable<Json>): Promise<string>;
        reconnectCall(legId: string): Promise<any>;
        getLeg(legId: string): Promise<vonage.LegJS>;
        getCallLegs(callId: string, parameters: Nullable<vonage.GetCallLegsParametersJS>): Promise<vonage.LegsPageJS>;
        answer(callId: string): Promise<any>;
        reject(callId: string): Promise<any>;
        hangup(callId: string, reasonText: Nullable<string>, reasonCode: Nullable<string>): Promise<any>;
        say(callId: string, params: vonage.CallSayParams): Promise<any>;
        mute(callId: string): Promise<any>;
        unmute(callId: string): Promise<any>;
        enableEarmuff(callId: string): Promise<any>;
        disableEarmuff(callId: string): Promise<any>;
        sendDTMF(callId: string, digits: string): Promise<any>;
    }
    class VoiceInviteFromInfoJS {
        constructor(id: Nullable<string>, type: string);
        get id(): Nullable<string>;
        get type(): string;
        copy(id?: Nullable<string>, type?: string): vonage.VoiceInviteFromInfoJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
}
export declare namespace vonage {
    interface HttpClientJS {
        request(verb: string, url: string, headers: Json, body: Nullable<string>, callback: (p0: Nullable<vonage.HttpClientErrorJS>, p1: Nullable<vonage.HttpClientResponseJS>) => void): void;
    }
    interface SocketClientJS {
        delegate?: Nullable<vonage.SocketClientDelegateJS>;
        emit(type: string, msg: Nullable<Json>, callback: (p0: Nullable<Error>, p1: Nullable<string>) => void): void;
        connect(host: string, path: string, reconnectionAttempts: any/* kotlin.Number */, reconnectionDelay: any/* kotlin.Number */, randomizationFactor: any/* kotlin.Number */, token: string, sessionId: Nullable<string>, query: string): void;
        disconnect(): void;
        setConnectParamsSocketConfig(sessionId: string, token: string): void;
        setSocketSessionId(sessionId: string): void;
        setSocketToken(token: string): void;
        startVerifyResponseTimer(milliseconds: any/* kotlin.Number */, callback: () => void): void;
    }
    interface SocketClientDelegateJS {
        didReceiveNewSocketEvent(body: string): void;
        didReceiveNewSocketConnectionStatusEvent(type: string, reason: Nullable<string>, timestamp: any/* kotlin.Number */, retryNumber: Nullable<number>): void;
    }
    interface MediaClientJS {
        delegate?: Nullable<vonage.MediaClientDelegateJS>;
        enableMediaOutbound(closure: (p0: any, p1: Nullable<string>, p2: (p0: string) => void) => void): void;
        enableMediaInbound(rtcId: string, offerSDP: string, closure: (p0: any, p1: Nullable<string>) => void): void;
        processAnswer(id: string, sdp: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        disableMedia(id: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        mute(id: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        unmute(id: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        getPeerConnection(id: string): any;
        getAudioOutputElement(): any;
        getMediaConnectionState(id: string): string;
        enableRtcStatsCollection(id: string, interval: any/* kotlin.Number */, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        enableNoiseSuppression(id: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
        disableNoiseSuppression(id: string, closure: (p0: Nullable<vonage.MediaClientErrorJS>) => void): void;
    }
    interface MediaClientDelegateJS {
        onRtcStats(id: string, rtcStats: vonage.RTCStatsJS): void;
        onConnectionChange(id: string, state: string): void;
        onMediaError(id: string, error: vonage.MediaClientErrorJS): void;
    }
}
export declare namespace vonage {
    class HttpClientErrorJS extends Error {
        constructor(message?: Nullable<string>, cause?: Nullable<Error>);
        get coreError(): any/* com.vonage.clientcore.core.middlewares.http.HTTPClientError */;
        copy(message?: Nullable<string>, cause?: Nullable<Error>): vonage.HttpClientErrorJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class HttpClientResponseJS {
        constructor(statusCode: number, body?: Nullable<string>);
        get statusCode(): number;
        get body(): Nullable<string>;
        copy(statusCode?: number, body?: Nullable<string>): vonage.HttpClientResponseJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    const SOCKET_CONNECTED: string;
    const SOCKET_RECONNECTING: string;
    const SOCKET_DISCONNECTED: string;
    const REASON_SERVER_DISCONNECTED: string;
    const REASON_CLIENT_DISCONNECTED: string;
    const REASON_CLIENT_NETWORK_ERROR: string;
    const REASON_PING_TIMEOUT: string;
    const CancelReasonJSObject: {
        get RemoteCancel(): string;
        get AnsweredElsewhere(): string;
        get RejectedElsewhere(): string;
        get RemoteTimeout(): string;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    };
    class RTCQualityJS {
        private constructor();
        get mos_score(): number;
        get quality_percentage(): number;
        get jitter_min_var(): number;
        get jitter_max_var(): number;
        get jitter_loss_rate(): number;
        get jitter_burst_rate(): number;
        get flaw_total(): number;
        get packet_cnt(): number;
        get packet_loss_perc(): number;
        copy(mos_score?: number, quality_percentage?: number, jitter_min_var?: number, jitter_max_var?: number, jitter_loss_rate?: number, jitter_burst_rate?: number, flaw_total?: number, packet_cnt?: number, packet_loss_perc?: number): vonage.RTCQualityJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
    }
    class RTCStatsJS {
        constructor(audioRecvPackets: any/* kotlin.Number */, audioRecvPacketsLost: any/* kotlin.Number */, audioRecvBytes: any/* kotlin.Number */, audioRecvJitter: any/* kotlin.Number */, audioSentPackets: any/* kotlin.Number */, audioSentBytes: any/* kotlin.Number */, audioSentPacketsLost: any/* kotlin.Number */, audioRtt: any/* kotlin.Number */, audioSentJitter: any/* kotlin.Number */);
        get audioRecvPackets(): any/* kotlin.Number */;
        get audioRecvPacketsLost(): any/* kotlin.Number */;
        get audioRecvBytes(): any/* kotlin.Number */;
        get audioRecvJitter(): any/* kotlin.Number */;
        get audioSentPackets(): any/* kotlin.Number */;
        get audioSentBytes(): any/* kotlin.Number */;
        get audioSentPacketsLost(): any/* kotlin.Number */;
        get audioRtt(): any/* kotlin.Number */;
        get audioSentJitter(): any/* kotlin.Number */;
        copy(audioRecvPackets?: any/* kotlin.Number */, audioRecvPacketsLost?: any/* kotlin.Number */, audioRecvBytes?: any/* kotlin.Number */, audioRecvJitter?: any/* kotlin.Number */, audioSentPackets?: any/* kotlin.Number */, audioSentBytes?: any/* kotlin.Number */, audioSentPacketsLost?: any/* kotlin.Number */, audioRtt?: any/* kotlin.Number */, audioSentJitter?: any/* kotlin.Number */): vonage.RTCStatsJS;
        toString(): string;
        hashCode(): number;
        equals(other: Nullable<any>): boolean;
        static get Companion(): {
        };
    }
}
export declare namespace vonage {
    interface CreateConversationParametersJS {
        readonly name?: Nullable<string>;
        readonly displayName?: Nullable<string>;
        readonly imageUrl?: Nullable<string>;
        readonly ttl?: Nullable<any>/* Nullable<kotlin.Number> */;
        readonly customSortKey?: Nullable<string>;
        readonly customData?: Nullable<string>;
    }
    interface UpdateConversationParametersJS {
        name: vonage.utils.OptionJS<string>;
        displayName: vonage.utils.OptionJS<Nullable<string>>;
        imageUrl: vonage.utils.OptionJS<Nullable<string>>;
        ttl: vonage.utils.OptionJS<any/* kotlin.Number */>;
        customSortKey: vonage.utils.OptionJS<Nullable<string>>;
        customData: vonage.utils.OptionJS<Nullable<string>>;
    }
    interface GetConversationsParametersJS {
        readonly order?: Nullable<vonage.PresentingOrderJS>;
        readonly pageSize?: Nullable<any>/* Nullable<kotlin.Number> */;
        readonly cursor?: Nullable<string>;
        readonly includeCustomData?: Nullable<boolean>;
        readonly orderBy?: Nullable<vonage.OrderByJS>;
    }
    interface GetConversationEventsParametersJS {
        readonly order?: Nullable<vonage.PresentingOrderJS>;
        readonly pageSize?: Nullable<any>/* Nullable<kotlin.Number> */;
        readonly cursor?: Nullable<string>;
        readonly eventFilter?: Nullable<Array<string>>;
        readonly includeDeletedEvents?: Nullable<boolean>;
        readonly startId?: Nullable<any>/* Nullable<kotlin.Number> */;
    }
    interface GetConversationMembersParametersJS {
        readonly order?: Nullable<vonage.PresentingOrderJS>;
        readonly pageSize?: Nullable<any>/* Nullable<kotlin.Number> */;
        readonly cursor?: Nullable<string>;
    }
    interface GetCallLegsParametersJS {
        readonly order?: Nullable<vonage.PresentingOrderJS>;
        readonly pageSize?: Nullable<any>/* Nullable<kotlin.Number> */;
        readonly cursor?: Nullable<string>;
    }
}
export declare namespace vonage.utils {
    abstract class OptionJS<T> {
        protected constructor();
        orNull(): Nullable<T>;
        contains<R>(value: R): boolean;
        map<R>(f: (p0: T) => R): vonage.utils.OptionJS<R>;
        mapOr<R>(_default: R, f: (p0: T) => R): R;
        mapOrElse<R>(_default: () => R, f: (p0: T) => R): R;
        mapNotNull<R>(f: (p0: T) => R): vonage.utils.OptionJS<Nullable<R>>;
        unwrapOr(_default: T): T;
        equals(other: Nullable<any>): boolean;
        hashCode(): number;
        static get Companion(): {
            of<T>(value: Nullable<T>): vonage.utils.OptionJS<T>;
        };
    }
    namespace OptionJS {
        class None<T> extends vonage.utils.OptionJS<T> {
            constructor();
        }
        class Some<T> extends vonage.utils.OptionJS<T> {
            constructor(value: T);
            get value(): T;
            copy(value?: T): vonage.utils.OptionJS.Some<T>;
            toString(): string;
            hashCode(): number;
            equals(other: Nullable<any>): boolean;
        }
    }
}
export as namespace clientsdk_clientcore_js;