import { type BaseCollectionPaginationCountResponse, type CommunicationsIdentitySet, type Entity, type Identity, type IdentitySet } from '../index.js';
import { type AdditionalDataHolder, type BackedModel, type Duration, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export interface AdministrativeUnitInfo extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Unique identifier for the administrative unit.
     */
    id?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export type AudioCodec = (typeof AudioCodecObject)[keyof typeof AudioCodecObject];
export interface CallLogRow extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * The administrativeUnitInfos property
     */
    administrativeUnitInfos?: AdministrativeUnitInfo[] | null;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The id property
     */
    id?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The otherPartyCountryCode property
     */
    otherPartyCountryCode?: string | null;
    /**
     * The userDisplayName property
     */
    userDisplayName?: string | null;
    /**
     * The userId property
     */
    userId?: string | null;
    /**
     * The userPrincipalName property
     */
    userPrincipalName?: string | null;
}
export interface CallRecord extends Entity, Parsable {
    /**
     * UTC time when the last user left the call. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    endDateTime?: Date | null;
    /**
     * Meeting URL associated to the call. May not be available for a peerToPeer call record type.
     */
    joinWebUrl?: string | null;
    /**
     * UTC time when the call record was created. The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: Date | null;
    /**
     * List of all the modalities used in the call. Possible values are: unknown, audio, video, videoBasedScreenSharing, data, screenSharing, unknownFutureValue.
     */
    modalities?: Modality[] | null;
    /**
     * The organizing party's identity. The organizer property is deprecated and will stop returning data on June 30, 2026. Going forward, use the organizer_v2 relationship.
     */
    organizer?: IdentitySet | null;
    /**
     * Identity of the organizer of the call. This relationship is expanded by default in callRecord methods.
     */
    organizerV2?: Organizer | null;
    /**
     * List of distinct identities involved in the call. Limited to 130 entries. The participants property is deprecated and will stop returning data on June 30, 2026. Going forward, use the participants_v2 relationship.
     */
    participants?: IdentitySet[] | null;
    /**
     * List of distinct participants in the call.
     */
    participantsV2?: Participant[] | null;
    /**
     * List of sessions involved in the call. Peer-to-peer calls typically only have one session, whereas group calls typically have at least one session per participant. Read-only. Nullable.
     */
    sessions?: Session[] | null;
    /**
     * UTC time when the first user joined the call. The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    startDateTime?: Date | null;
    /**
     * The type property
     */
    type?: CallType | null;
    /**
     * Monotonically increasing version of the call record. Higher version call records with the same ID include additional data compared to the lower version.
     */
    version?: number | null;
}
export interface CallRecordCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: CallRecord[] | null;
}
export type CallType = (typeof CallTypeObject)[keyof typeof CallTypeObject];
export type ClientPlatform = (typeof ClientPlatformObject)[keyof typeof ClientPlatformObject];
export interface ClientUserAgent extends Parsable, UserAgent {
    /**
     * The unique identifier of the Microsoft Entra application used by this endpoint.
     */
    azureADAppId?: string | null;
    /**
     * Immutable resource identifier of the Azure Communication Service associated with this endpoint based on Communication Services APIs.
     */
    communicationServiceId?: string | null;
    /**
     * The platform property
     */
    platform?: ClientPlatform | null;
    /**
     * The productFamily property
     */
    productFamily?: ProductFamily | null;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AdministrativeUnitInfo}
 */
export declare function createAdministrativeUnitInfoFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CallLogRow}
 */
export declare function createCallLogRowFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CallRecordCollectionResponse}
 */
export declare function createCallRecordCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {CallRecord}
 */
export declare function createCallRecordFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ClientUserAgent}
 */
export declare function createClientUserAgentFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DeviceInfo}
 */
export declare function createDeviceInfoFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {DirectRoutingLogRow}
 */
export declare function createDirectRoutingLogRowFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Endpoint}
 */
export declare function createEndpointFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {FailureInfo}
 */
export declare function createFailureInfoFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {FeedbackTokenSet}
 */
export declare function createFeedbackTokenSetFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Media}
 */
export declare function createMediaFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {MediaStream}
 */
export declare function createMediaStreamFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {NetworkInfo}
 */
export declare function createNetworkInfoFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Organizer}
 */
export declare function createOrganizerFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ParticipantBase}
 */
export declare function createParticipantBaseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ParticipantCollectionResponse}
 */
export declare function createParticipantCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ParticipantEndpoint}
 */
export declare function createParticipantEndpointFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Participant}
 */
export declare function createParticipantFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PstnBlockedUsersLogRow}
 */
export declare function createPstnBlockedUsersLogRowFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PstnCallLogRow}
 */
export declare function createPstnCallLogRowFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {PstnOnlineMeetingDialoutReport}
 */
export declare function createPstnOnlineMeetingDialoutReportFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SegmentCollectionResponse}
 */
export declare function createSegmentCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Segment}
 */
export declare function createSegmentFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ServiceEndpoint}
 */
export declare function createServiceEndpointFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ServiceUserAgent}
 */
export declare function createServiceUserAgentFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SessionCollectionResponse}
 */
export declare function createSessionCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Session}
 */
export declare function createSessionFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SmsLogRow}
 */
export declare function createSmsLogRowFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {TraceRouteHop}
 */
export declare function createTraceRouteHopFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserAgent}
 */
export declare function createUserAgentFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserFeedback}
 */
export declare function createUserFeedbackFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UserIdentity}
 */
export declare function createUserIdentityFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAdministrativeUnitInfo(administrativeUnitInfo?: Partial<AdministrativeUnitInfo> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCallLogRow(callLogRow?: Partial<CallLogRow> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCallRecord(callRecord?: Partial<CallRecord> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoCallRecordCollectionResponse(callRecordCollectionResponse?: Partial<CallRecordCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoClientUserAgent(clientUserAgent?: Partial<ClientUserAgent> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDeviceInfo(deviceInfo?: Partial<DeviceInfo> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoDirectRoutingLogRow(directRoutingLogRow?: Partial<DirectRoutingLogRow> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoEndpoint(endpoint?: Partial<Endpoint> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoFailureInfo(failureInfo?: Partial<FailureInfo> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoFeedbackTokenSet(feedbackTokenSet?: Partial<FeedbackTokenSet> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoMedia(media?: Partial<Media> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoMediaStream(mediaStream?: Partial<MediaStream> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoNetworkInfo(networkInfo?: Partial<NetworkInfo> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoOrganizer(organizer?: Partial<Organizer> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoParticipant(participant?: Partial<Participant> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoParticipantBase(participantBase?: Partial<ParticipantBase> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoParticipantCollectionResponse(participantCollectionResponse?: Partial<ParticipantCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoParticipantEndpoint(participantEndpoint?: Partial<ParticipantEndpoint> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoPstnBlockedUsersLogRow(pstnBlockedUsersLogRow?: Partial<PstnBlockedUsersLogRow> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoPstnCallLogRow(pstnCallLogRow?: Partial<PstnCallLogRow> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoPstnOnlineMeetingDialoutReport(pstnOnlineMeetingDialoutReport?: Partial<PstnOnlineMeetingDialoutReport> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSegment(segment?: Partial<Segment> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSegmentCollectionResponse(segmentCollectionResponse?: Partial<SegmentCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoServiceEndpoint(serviceEndpoint?: Partial<ServiceEndpoint> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoServiceUserAgent(serviceUserAgent?: Partial<ServiceUserAgent> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSession(session?: Partial<Session> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSessionCollectionResponse(sessionCollectionResponse?: Partial<SessionCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSmsLogRow(smsLogRow?: Partial<SmsLogRow> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoTraceRouteHop(traceRouteHop?: Partial<TraceRouteHop> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserAgent(userAgent?: Partial<UserAgent> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserFeedback(userFeedback?: Partial<UserFeedback> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserIdentity(userIdentity?: Partial<UserIdentity> | undefined): Record<string, (node: ParseNode) => void>;
export interface DeviceInfo extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Name of the capture device driver used by the media endpoint.
     */
    captureDeviceDriver?: string | null;
    /**
     * Name of the capture device used by the media endpoint.
     */
    captureDeviceName?: string | null;
    /**
     * Fraction of the call that the media endpoint detected the capture device was not working properly.
     */
    captureNotFunctioningEventRatio?: number | null;
    /**
     * Fraction of the call that the media endpoint detected the CPU resources available were insufficient and caused poor quality of the audio sent and received.
     */
    cpuInsufficentEventRatio?: number | null;
    /**
     * Fraction of the call that the media endpoint detected clipping in the captured audio that caused poor quality of the audio being sent.
     */
    deviceClippingEventRatio?: number | null;
    /**
     * Fraction of the call that the media endpoint detected glitches or gaps in the audio played or captured that caused poor quality of the audio being sent or received.
     */
    deviceGlitchEventRatio?: number | null;
    /**
     * Number of times during the call that the media endpoint detected howling or screeching audio.
     */
    howlingEventCount?: number | null;
    /**
     * The root mean square (RMS) of the incoming signal of up to the first 30 seconds of the call.
     */
    initialSignalLevelRootMeanSquare?: number | null;
    /**
     * Fraction of the call that the media endpoint detected low speech level that caused poor quality of the audio being sent.
     */
    lowSpeechLevelEventRatio?: number | null;
    /**
     * Fraction of the call that the media endpoint detected low speech to noise level that caused poor quality of the audio being sent.
     */
    lowSpeechToNoiseEventRatio?: number | null;
    /**
     * Glitches per 5 minute interval for the media endpoint's microphone.
     */
    micGlitchRate?: number | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Average energy level of received audio for audio classified as mono noise or left channel of stereo noise by the media endpoint.
     */
    receivedNoiseLevel?: number | null;
    /**
     * Average energy level of received audio for audio classified as mono speech, or left channel of stereo speech by the media endpoint.
     */
    receivedSignalLevel?: number | null;
    /**
     * Name of the render device driver used by the media endpoint.
     */
    renderDeviceDriver?: string | null;
    /**
     * Name of the render device used by the media endpoint.
     */
    renderDeviceName?: string | null;
    /**
     * Fraction of the call that media endpoint detected device render is muted.
     */
    renderMuteEventRatio?: number | null;
    /**
     * Fraction of the call that the media endpoint detected the render device was not working properly.
     */
    renderNotFunctioningEventRatio?: number | null;
    /**
     * Fraction of the call that media endpoint detected device render volume is set to 0.
     */
    renderZeroVolumeEventRatio?: number | null;
    /**
     * Average energy level of sent audio for audio classified as mono noise or left channel of stereo noise by the media endpoint.
     */
    sentNoiseLevel?: number | null;
    /**
     * Average energy level of sent audio for audio classified as mono speech, or left channel of stereo speech by the media endpoint.
     */
    sentSignalLevel?: number | null;
    /**
     * Glitches per 5 minute internal for the media endpoint's loudspeaker.
     */
    speakerGlitchRate?: number | null;
}
export interface DirectRoutingLogRow extends CallLogRow, Parsable {
    /**
     * Number of the user or bot who received the call (E.164 format, but might include more data).
     */
    calleeNumber?: string | null;
    /**
     * In addition to the SIP codes, Microsoft has own subcodes that indicate the specific issue.
     */
    callEndSubReason?: number | null;
    /**
     * Number of the user or bot who made the call (E.164 format, but might include more data).
     */
    callerNumber?: string | null;
    /**
     * Call type and direction.
     */
    callType?: string | null;
    /**
     * Identifier (GUID) for the call that you can use when calling Microsoft Support.
     */
    correlationId?: string | null;
    /**
     * Duration of the call in seconds.
     */
    duration?: number | null;
    /**
     * Only exists for successful (fully established) calls. The time when the call ended.
     */
    endDateTime?: Date | null;
    /**
     * Only exists for failed (not fully established) calls.
     */
    failureDateTime?: Date | null;
    /**
     * The final response code with which the call ended (RFC 3261).
     */
    finalSipCode?: number | null;
    /**
     * Description of the SIP code and Microsoft subcode.
     */
    finalSipCodePhrase?: string | null;
    /**
     * The date and time when the initial invite was sent.
     */
    inviteDateTime?: Date | null;
    /**
     * Indicates if the trunk was enabled for media bypass or not.
     */
    mediaBypassEnabled?: boolean | null;
    /**
     * The data center used for media path in non-bypass call.
     */
    mediaPathLocation?: string | null;
    /**
     * The data center used for signaling for both bypass and non-bypass calls.
     */
    signalingLocation?: string | null;
    /**
     * Call start time.For failed and unanswered calls, this value can be equal to invite or failure time.
     */
    startDateTime?: Date | null;
    /**
     * Success or attempt.
     */
    successfulCall?: boolean | null;
    /**
     * Correlation ID of the call to the transferor.
     */
    transferorCorrelationId?: string | null;
    /**
     * Fully qualified domain name of the session border controller.
     */
    trunkFullyQualifiedDomainName?: string | null;
    /**
     * Country/region code of the user. For details, see ISO 3166-1 alpha-2.
     */
    userCountryCode?: string | null;
}
export interface Endpoint extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * User-agent reported by this endpoint.
     */
    userAgent?: UserAgent | null;
}
export interface FailureInfo extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Classification of why a call or portion of a call failed.
     */
    reason?: string | null;
    /**
     * The stage property
     */
    stage?: FailureStage | null;
}
export type FailureStage = (typeof FailureStageObject)[keyof typeof FailureStageObject];
export interface FeedbackTokenSet extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export interface Media extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Device information associated with the callee endpoint of this media.
     */
    calleeDevice?: DeviceInfo | null;
    /**
     * Network information associated with the callee endpoint of this media.
     */
    calleeNetwork?: NetworkInfo | null;
    /**
     * Device information associated with the caller endpoint of this media.
     */
    callerDevice?: DeviceInfo | null;
    /**
     * Network information associated with the caller endpoint of this media.
     */
    callerNetwork?: NetworkInfo | null;
    /**
     * How the media was identified during media negotiation stage.
     */
    label?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Network streams associated with this media.
     */
    streams?: MediaStream[] | null;
}
export interface MediaStream extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Codec name used to encode audio for transmission on the network. Possible values are: unknown, invalid, cn, pcma, pcmu, amrWide, g722, g7221, g7221c, g729, multiChannelAudio, muchv2, opus, satin, satinFullband, rtAudio8, rtAudio16, silk, silkNarrow, silkWide, siren, xmsRta, unknownFutureValue.
     */
    audioCodec?: AudioCodec | null;
    /**
     * Average Network Mean Opinion Score degradation for stream. Represents how much the network loss and jitter has impacted the quality of received audio.
     */
    averageAudioDegradation?: number | null;
    /**
     * Average jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    averageAudioNetworkJitter?: Duration | null;
    /**
     * Average estimated bandwidth available between two endpoints in bits per second.
     */
    averageBandwidthEstimate?: number | null;
    /**
     * Average of the received freeze duration related to the video stream.
     */
    averageFreezeDuration?: Duration | null;
    /**
     * Average jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    averageJitter?: Duration | null;
    /**
     * Average packet loss rate for stream.
     */
    averagePacketLossRate?: number | null;
    /**
     * Ratio of the number of audio frames with samples generated by packet loss concealment to the total number of audio frames.
     */
    averageRatioOfConcealedSamples?: number | null;
    /**
     * Average frames per second received for all video streams computed over the duration of the session.
     */
    averageReceivedFrameRate?: number | null;
    /**
     * Average network propagation round-trip time computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    averageRoundTripTime?: Duration | null;
    /**
     * Average percentage of video frames lost as displayed to the user.
     */
    averageVideoFrameLossPercentage?: number | null;
    /**
     * Average frames per second received for a video stream, computed over the duration of the session.
     */
    averageVideoFrameRate?: number | null;
    /**
     * Average fraction of packets lost, as specified in RFC 3550, computed over the duration of the session.
     */
    averageVideoPacketLossRate?: number | null;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * UTC time when the stream ended. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only available for streams that use the SIP protocol.
     */
    endDateTime?: Date | null;
    /**
     * Indicates whether the forward error correction (FEC) was used at some point during the session. The default value is null.
     */
    isAudioForwardErrorCorrectionUsed?: boolean | null;
    /**
     * Fraction of the call where frame rate is less than 7.5 frames per second.
     */
    lowFrameRateRatio?: number | null;
    /**
     * Fraction of the call that the client is running less than 70% expected video processing capability.
     */
    lowVideoProcessingCapabilityRatio?: number | null;
    /**
     * Maximum of audio network jitter computed over each of the 20 second windows during the session, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    maxAudioNetworkJitter?: Duration | null;
    /**
     * Maximum jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    maxJitter?: Duration | null;
    /**
     * Maximum packet loss rate for the stream.
     */
    maxPacketLossRate?: number | null;
    /**
     * Maximum ratio of packets concealed by the healer.
     */
    maxRatioOfConcealedSamples?: number | null;
    /**
     * Maximum network propagation round-trip time computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.
     */
    maxRoundTripTime?: Duration | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Packet count for the stream.
     */
    packetUtilization?: number | null;
    /**
     * Packet loss rate after FEC has been applied aggregated across all video streams and codecs.
     */
    postForwardErrorCorrectionPacketLossRate?: number | null;
    /**
     * Root mean square of the received freeze duration related to the video stream.
     */
    rmsFreezeDuration?: Duration | null;
    /**
     * UTC time when the stream started. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only available for streams that use the SIP protocol.
     */
    startDateTime?: Date | null;
    /**
     * The streamDirection property
     */
    streamDirection?: MediaStreamDirection | null;
    /**
     * Unique identifier for the stream.
     */
    streamId?: string | null;
    /**
     * Codec name used to encode video for transmission on the network. Possible values are: unknown, invalid, av1, h263, h264, h264s, h264uc, h265, rtvc1, rtVideo, xrtvc1, unknownFutureValue.
     */
    videoCodec?: VideoCodec | null;
    /**
     * True if the media stream bypassed the Mediation Server and went straight between client and PSTN Gateway/PBX, false otherwise.
     */
    wasMediaBypassed?: boolean | null;
}
export type MediaStreamDirection = (typeof MediaStreamDirectionObject)[keyof typeof MediaStreamDirectionObject];
export type Modality = (typeof ModalityObject)[keyof typeof ModalityObject];
export type NetworkConnectionType = (typeof NetworkConnectionTypeObject)[keyof typeof NetworkConnectionTypeObject];
export interface NetworkInfo extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Fraction of the call that the media endpoint detected the available bandwidth or bandwidth policy was low enough to cause poor quality of the audio sent.
     */
    bandwidthLowEventRatio?: number | null;
    /**
     * The wireless LAN basic service set identifier of the media endpoint used to connect to the network. This property isn't available if the user disables precise location sharing in their operating system or Microsoft Teams app settings.
     */
    basicServiceSetIdentifier?: string | null;
    /**
     * The connectionType property
     */
    connectionType?: NetworkConnectionType | null;
    /**
     * Fraction of the call that the media endpoint detected the network delay was significant enough to impact the ability to have real-time two-way communication.
     */
    delayEventRatio?: number | null;
    /**
     * DNS suffix associated with the network adapter of the media endpoint.
     */
    dnsSuffix?: string | null;
    /**
     * IP address of the media endpoint.
     */
    ipAddress?: string | null;
    /**
     * Link speed in bits per second reported by the network adapter used by the media endpoint.
     */
    linkSpeed?: number | null;
    /**
     * The media access control (MAC) address of the media endpoint's network device. This value may be missing or shown as 02:00:00:00:00:00 due to operating system privacy policies.
     */
    macAddress?: string | null;
    /**
     * The networkTransportProtocol property
     */
    networkTransportProtocol?: NetworkTransportProtocol | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Network port number used by media endpoint.
     */
    port?: number | null;
    /**
     * Fraction of the call that the media endpoint detected the network was causing poor quality of the audio received.
     */
    receivedQualityEventRatio?: number | null;
    /**
     * IP address of the media endpoint as seen by the media relay server. This is typically the public internet IP address associated to the endpoint.
     */
    reflexiveIPAddress?: string | null;
    /**
     * IP address of the media relay server allocated by the media endpoint.
     */
    relayIPAddress?: string | null;
    /**
     * Network port number allocated on the media relay server by the media endpoint.
     */
    relayPort?: number | null;
    /**
     * Fraction of the call that the media endpoint detected the network was causing poor quality of the audio sent.
     */
    sentQualityEventRatio?: number | null;
    /**
     * Subnet used for media stream by the media endpoint.
     */
    subnet?: string | null;
    /**
     * List of network trace route hops collected for this media stream.*
     */
    traceRouteHops?: TraceRouteHop[] | null;
    /**
     * The wifiBand property
     */
    wifiBand?: WifiBand | null;
    /**
     * Estimated remaining battery charge in percentage reported by the media endpoint.
     */
    wifiBatteryCharge?: number | null;
    /**
     * WiFi channel used by the media endpoint.
     */
    wifiChannel?: number | null;
    /**
     * Name of the Microsoft WiFi driver used by the media endpoint. Value may be localized based on the language used by endpoint.
     */
    wifiMicrosoftDriver?: string | null;
    /**
     * Version of the Microsoft WiFi driver used by the media endpoint.
     */
    wifiMicrosoftDriverVersion?: string | null;
    /**
     * The wifiRadioType property
     */
    wifiRadioType?: WifiRadioType | null;
    /**
     * WiFi signal strength in percentage reported by the media endpoint.
     */
    wifiSignalStrength?: number | null;
    /**
     * Name of the WiFi driver used by the media endpoint. Value may be localized based on the language used by endpoint.
     */
    wifiVendorDriver?: string | null;
    /**
     * Version of the WiFi driver used by the media endpoint.
     */
    wifiVendorDriverVersion?: string | null;
}
export type NetworkTransportProtocol = (typeof NetworkTransportProtocolObject)[keyof typeof NetworkTransportProtocolObject];
export interface Organizer extends Parsable, ParticipantBase {
}
export interface Participant extends Parsable, ParticipantBase {
}
export interface ParticipantBase extends Entity, Parsable {
    /**
     * List of administrativeUnitInfo of the call participant.
     */
    administrativeUnitInfos?: AdministrativeUnitInfo[] | null;
    /**
     * The identity of the call participant.
     */
    identity?: CommunicationsIdentitySet | null;
}
export interface ParticipantCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Participant[] | null;
}
export interface ParticipantEndpoint extends Endpoint, Parsable {
    /**
     * Identity associated with the endpoint.
     */
    associatedIdentity?: Identity | null;
    /**
     * CPU number of cores used by the media endpoint.
     */
    cpuCoresCount?: number | null;
    /**
     * CPU name used by the media endpoint.
     */
    cpuName?: string | null;
    /**
     * CPU processor speed used by the media endpoint.
     */
    cpuProcessorSpeedInMhz?: number | null;
    /**
     * The feedback provided by the user of this endpoint about the quality of the session.
     */
    feedback?: UserFeedback | null;
    /**
     * Identity associated with the endpoint. The identity property is deprecated and will stop returning data on June 30, 2026. Going forward, use the associatedIdentity property.
     */
    identity?: IdentitySet | null;
    /**
     * Name of the device used by the media endpoint.
     */
    name?: string | null;
}
export type ProductFamily = (typeof ProductFamilyObject)[keyof typeof ProductFamilyObject];
export interface PstnBlockedUsersLogRow extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The date and time when the user was blocked/unblocked from making PSTN calls. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    blockDateTime?: Date | null;
    /**
     * The reason why the user is blocked/unblocked from making calls.
     */
    blockReason?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Unique identifier (GUID) for the blocking/unblocking action.
     */
    remediationId?: string | null;
    /**
     * Indicates whether the user is blocked or unblocked from making PSTN calls in Microsoft Teams. The possible values are: blocked, unblocked, unknownFutureValue.
     */
    userBlockMode?: PstnUserBlockMode | null;
    /**
     * Display name of the user.
     */
    userDisplayName?: string | null;
    /**
     * The unique identifier (GUID) of the user in Microsoft Entra ID.
     */
    userId?: string | null;
    /**
     * The user principal name (sign-in name) in Microsoft Entra ID. This is usually the same as the user's SIP address, and can be same as the user's e-mail address.
     */
    userPrincipalName?: string | null;
    /**
     * User's blocked number. For details, see E.164.
     */
    userTelephoneNumber?: string | null;
}
export type PstnCallDurationSource = (typeof PstnCallDurationSourceObject)[keyof typeof PstnCallDurationSourceObject];
export interface PstnCallLogRow extends CallLogRow, Parsable {
    /**
     * The source of the call duration data. If the call uses a third-party telecommunications operator via the Operator Connect Program, the operator may provide their own call duration data. In this case, the property value is operator. Otherwise, the value is microsoft.
     */
    callDurationSource?: PstnCallDurationSource | null;
    /**
     * Number of the user or bot who received the call (E.164).
     */
    calleeNumber?: string | null;
    /**
     * Number of the user or bot who made the call (E.164).
     */
    callerNumber?: string | null;
    /**
     * Call identifier. Not guaranteed to be unique.
     */
    callId?: string | null;
    /**
     * Indicates whether the call was a PSTN outbound or inbound call and the type of call such as a call placed by a user or an audio conference.
     */
    callType?: string | null;
    /**
     * Amount of money or cost of the call that is charged to your account.
     */
    charge?: number | null;
    /**
     * Local IPv4 of the client that is retrieved from the operating system of the client.
     */
    clientLocalIpV4Address?: string | null;
    /**
     * Local IPv6 of the client that is retrieved from the operating system of the client.
     */
    clientLocalIpV6Address?: string | null;
    /**
     * Public IPv4 of the client that can be used to determine the location of the client.
     */
    clientPublicIpV4Address?: string | null;
    /**
     * Public IPv6 of the client that can be used to determine the location of the client.
     */
    clientPublicIpV6Address?: string | null;
    /**
     * ID of the audio conference.
     */
    conferenceId?: string | null;
    /**
     * Connection fee price.
     */
    connectionCharge?: number | null;
    /**
     * Type of currency used to calculate the cost of the call (ISO 4217).
     */
    currency?: string | null;
    /**
     * Indicates whether the call was Domestic (within a country or region) or International (outside a country or region) based on the user's location.
     */
    destinationContext?: string | null;
    /**
     * Country or region dialed.
     */
    destinationName?: string | null;
    /**
     * How long the call was connected, in seconds.
     */
    duration?: number | null;
    /**
     * Call end time.
     */
    endDateTime?: Date | null;
    /**
     * User's phone number type, such as a service of toll-free number.
     */
    inventoryType?: string | null;
    /**
     * The license used for the call.
     */
    licenseCapability?: string | null;
    /**
     * The telecommunications operator that provided PSTN services for this call. It may be Microsoft, or it may be a third-party operator via the Operator Connect Program.
     */
    operator?: string | null;
    /**
     * Call start time.
     */
    startDateTime?: Date | null;
    /**
     * Country code of the tenant. For details, see ISO 3166-1 alpha-2.
     */
    tenantCountryCode?: string | null;
    /**
     * Country code of the user. For details, see ISO 3166-1 alpha-2.
     */
    usageCountryCode?: string | null;
}
export interface PstnOnlineMeetingDialoutReport extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * Currency used to calculate the cost of the call. For details, see ISO 4217.
     */
    currency?: string | null;
    /**
     * Indicates whether the call was Domestic (within a country or region) or International (outside a country or region) based on the user's location.
     */
    destinationContext?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Total costs of all the calls within the selected time range, including call charges and connection fees.
     */
    totalCallCharge?: number | null;
    /**
     * Total number of dial-out calls within the selected time range.
     */
    totalCalls?: number | null;
    /**
     * Total duration of all the calls within the selected time range, in seconds.
     */
    totalCallSeconds?: number | null;
    /**
     * Country code of the user. For details, see ISO 3166-1 alpha-2.
     */
    usageLocation?: string | null;
    /**
     * Display name of the user.
     */
    userDisplayName?: string | null;
    /**
     * The unique identifier (GUID) of the user in Microsoft Entra ID.
     */
    userId?: string | null;
    /**
     * The user principal name (sign-in name) in Microsoft Entra ID. This is usually the same as the user's SIP address, and can be same as the user's e-mail address.
     */
    userPrincipalName?: string | null;
}
export type PstnUserBlockMode = (typeof PstnUserBlockModeObject)[keyof typeof PstnUserBlockModeObject];
export interface Segment extends Entity, Parsable {
    /**
     * Endpoint that answered this segment.
     */
    callee?: Endpoint | null;
    /**
     * Endpoint that initiated this segment.
     */
    caller?: Endpoint | null;
    /**
     * UTC time when the segment ended. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    endDateTime?: Date | null;
    /**
     * Failure information associated with the segment if it failed.
     */
    failureInfo?: FailureInfo | null;
    /**
     * Media associated with this segment.
     */
    media?: Media[] | null;
    /**
     * UTC time when the segment started. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    startDateTime?: Date | null;
}
export interface SegmentCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Segment[] | null;
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAdministrativeUnitInfo(writer: SerializationWriter, administrativeUnitInfo?: Partial<AdministrativeUnitInfo> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCallLogRow(writer: SerializationWriter, callLogRow?: Partial<CallLogRow> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCallRecord(writer: SerializationWriter, callRecord?: Partial<CallRecord> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeCallRecordCollectionResponse(writer: SerializationWriter, callRecordCollectionResponse?: Partial<CallRecordCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeClientUserAgent(writer: SerializationWriter, clientUserAgent?: Partial<ClientUserAgent> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDeviceInfo(writer: SerializationWriter, deviceInfo?: Partial<DeviceInfo> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeDirectRoutingLogRow(writer: SerializationWriter, directRoutingLogRow?: Partial<DirectRoutingLogRow> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeEndpoint(writer: SerializationWriter, endpoint?: Partial<Endpoint> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeFailureInfo(writer: SerializationWriter, failureInfo?: Partial<FailureInfo> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeFeedbackTokenSet(writer: SerializationWriter, feedbackTokenSet?: Partial<FeedbackTokenSet> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeMedia(writer: SerializationWriter, media?: Partial<Media> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeMediaStream(writer: SerializationWriter, mediaStream?: Partial<MediaStream> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeNetworkInfo(writer: SerializationWriter, networkInfo?: Partial<NetworkInfo> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeOrganizer(writer: SerializationWriter, organizer?: Partial<Organizer> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeParticipant(writer: SerializationWriter, participant?: Partial<Participant> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeParticipantBase(writer: SerializationWriter, participantBase?: Partial<ParticipantBase> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeParticipantCollectionResponse(writer: SerializationWriter, participantCollectionResponse?: Partial<ParticipantCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeParticipantEndpoint(writer: SerializationWriter, participantEndpoint?: Partial<ParticipantEndpoint> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializePstnBlockedUsersLogRow(writer: SerializationWriter, pstnBlockedUsersLogRow?: Partial<PstnBlockedUsersLogRow> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializePstnCallLogRow(writer: SerializationWriter, pstnCallLogRow?: Partial<PstnCallLogRow> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializePstnOnlineMeetingDialoutReport(writer: SerializationWriter, pstnOnlineMeetingDialoutReport?: Partial<PstnOnlineMeetingDialoutReport> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSegment(writer: SerializationWriter, segment?: Partial<Segment> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSegmentCollectionResponse(writer: SerializationWriter, segmentCollectionResponse?: Partial<SegmentCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeServiceEndpoint(writer: SerializationWriter, serviceEndpoint?: Partial<ServiceEndpoint> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeServiceUserAgent(writer: SerializationWriter, serviceUserAgent?: Partial<ServiceUserAgent> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSession(writer: SerializationWriter, session?: Partial<Session> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSessionCollectionResponse(writer: SerializationWriter, sessionCollectionResponse?: Partial<SessionCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSmsLogRow(writer: SerializationWriter, smsLogRow?: Partial<SmsLogRow> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeTraceRouteHop(writer: SerializationWriter, traceRouteHop?: Partial<TraceRouteHop> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserAgent(writer: SerializationWriter, userAgent?: Partial<UserAgent> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserFeedback(writer: SerializationWriter, userFeedback?: Partial<UserFeedback> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserIdentity(writer: SerializationWriter, userIdentity?: Partial<UserIdentity> | undefined | null): void;
export interface ServiceEndpoint extends Endpoint, Parsable {
}
export type ServiceRole = (typeof ServiceRoleObject)[keyof typeof ServiceRoleObject];
export interface ServiceUserAgent extends Parsable, UserAgent {
    /**
     * The role property
     */
    role?: ServiceRole | null;
}
export interface Session extends Entity, Parsable {
    /**
     * Endpoint that answered the session.
     */
    callee?: Endpoint | null;
    /**
     * Endpoint that initiated the session.
     */
    caller?: Endpoint | null;
    /**
     * UTC time when the last user left the session. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    endDateTime?: Date | null;
    /**
     * Failure information associated with the session if the session failed.
     */
    failureInfo?: FailureInfo | null;
    /**
     * Specifies whether the session is a test.
     */
    isTest?: boolean | null;
    /**
     * List of modalities present in the session. Possible values are: unknown, audio, video, videoBasedScreenSharing, data, screenSharing, unknownFutureValue.
     */
    modalities?: Modality[] | null;
    /**
     * The list of segments involved in the session. Read-only. Nullable.
     */
    segments?: Segment[] | null;
    /**
     * UTC time when the first user joined the session. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    startDateTime?: Date | null;
}
export interface SessionCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Session[] | null;
}
export interface SmsLogRow extends CallLogRow, Parsable {
    /**
     * Amount of money or cost of the SMS that is charged.
     */
    callCharge?: number | null;
    /**
     * Currency used to calculate the cost of the call. For details, see ISO 4217.
     */
    currency?: string | null;
    /**
     * Indicates whether the SMS was Domestic (within a country or region) or International (outside a country or region) based on the user's location.
     */
    destinationContext?: string | null;
    /**
     * Country or region of a phone number that received the SMS.
     */
    destinationName?: string | null;
    /**
     * Partially obfuscated phone number that received the SMS. For details, see E.164.
     */
    destinationNumber?: string | null;
    /**
     * The license used for the SMS.
     */
    licenseCapability?: string | null;
    /**
     * The date and time when the SMS was sent.
     */
    sentDateTime?: Date | null;
    /**
     * SMS identifier. Not guaranteed to be unique.
     */
    smsId?: string | null;
    /**
     * Type of SMS such as outbound or inbound.
     */
    smsType?: string | null;
    /**
     * Number of SMS units sent/received.
     */
    smsUnits?: number | null;
    /**
     * Partially obfuscated phone number that sent the SMS. For details, see E.164.
     */
    sourceNumber?: string | null;
    /**
     * Country code of the tenant. For details, see ISO 3166-1 alpha-2.
     */
    tenantCountryCode?: string | null;
    /**
     * Country code of the user. For details, see ISO 3166-1 alpha-2.
     */
    userCountryCode?: string | null;
}
export interface TraceRouteHop extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The network path count of this hop that was used to compute the round-trip time.
     */
    hopCount?: number | null;
    /**
     * IP address used for this hop in the network trace.
     */
    ipAddress?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The time from when the trace route packet was sent from the client to this hop and back to the client, denoted in ISO 8601 format. For example, 1 second is denoted as PT1S, where P is the duration designator, T is the time designator, and S is the second designator.
     */
    roundTripTime?: Duration | null;
}
export interface UserAgent extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Identifies the version of application software used by this endpoint.
     */
    applicationVersion?: string | null;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * User-agent header value reported by this endpoint.
     */
    headerValue?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export interface UserFeedback extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The rating property
     */
    rating?: UserFeedbackRating | null;
    /**
     * The feedback text provided by the user of this endpoint for the session.
     */
    text?: string | null;
    /**
     * The set of feedback tokens provided by the user of this endpoint for the session. This is a set of Boolean properties. The property names should not be relied upon since they may change depending on what tokens are offered to the user.
     */
    tokens?: FeedbackTokenSet | null;
}
export type UserFeedbackRating = (typeof UserFeedbackRatingObject)[keyof typeof UserFeedbackRatingObject];
export interface UserIdentity extends Identity, Parsable {
    /**
     * The userPrincipalName property
     */
    userPrincipalName?: string | null;
}
export type VideoCodec = (typeof VideoCodecObject)[keyof typeof VideoCodecObject];
export type WifiBand = (typeof WifiBandObject)[keyof typeof WifiBandObject];
export type WifiRadioType = (typeof WifiRadioTypeObject)[keyof typeof WifiRadioTypeObject];
export declare const AudioCodecObject: {
    readonly Unknown: "unknown";
    readonly Invalid: "invalid";
    readonly Cn: "cn";
    readonly Pcma: "pcma";
    readonly Pcmu: "pcmu";
    readonly AmrWide: "amrWide";
    readonly G722: "g722";
    readonly G7221: "g7221";
    readonly G7221c: "g7221c";
    readonly G729: "g729";
    readonly MultiChannelAudio: "multiChannelAudio";
    readonly Muchv2: "muchv2";
    readonly Opus: "opus";
    readonly Satin: "satin";
    readonly SatinFullband: "satinFullband";
    readonly RtAudio8: "rtAudio8";
    readonly RtAudio16: "rtAudio16";
    readonly Silk: "silk";
    readonly SilkNarrow: "silkNarrow";
    readonly SilkWide: "silkWide";
    readonly Siren: "siren";
    readonly XmsRta: "xmsRta";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const CallTypeObject: {
    readonly Unknown: "unknown";
    readonly GroupCall: "groupCall";
    readonly PeerToPeer: "peerToPeer";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ClientPlatformObject: {
    readonly Unknown: "unknown";
    readonly Windows: "windows";
    readonly MacOS: "macOS";
    readonly IOS: "iOS";
    readonly Android: "android";
    readonly Web: "web";
    readonly IpPhone: "ipPhone";
    readonly RoomSystem: "roomSystem";
    readonly SurfaceHub: "surfaceHub";
    readonly HoloLens: "holoLens";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const FailureStageObject: {
    readonly Unknown: "unknown";
    readonly CallSetup: "callSetup";
    readonly Midcall: "midcall";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const MediaStreamDirectionObject: {
    readonly CallerToCallee: "callerToCallee";
    readonly CalleeToCaller: "calleeToCaller";
};
export declare const ModalityObject: {
    readonly Audio: "audio";
    readonly Video: "video";
    readonly VideoBasedScreenSharing: "videoBasedScreenSharing";
    readonly Data: "data";
    readonly ScreenSharing: "screenSharing";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const NetworkConnectionTypeObject: {
    readonly Unknown: "unknown";
    readonly Wired: "wired";
    readonly Wifi: "wifi";
    readonly Mobile: "mobile";
    readonly Tunnel: "tunnel";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const NetworkTransportProtocolObject: {
    readonly Unknown: "unknown";
    readonly Udp: "udp";
    readonly Tcp: "tcp";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ProductFamilyObject: {
    readonly Unknown: "unknown";
    readonly Teams: "teams";
    readonly SkypeForBusiness: "skypeForBusiness";
    readonly Lync: "lync";
    readonly UnknownFutureValue: "unknownFutureValue";
    readonly AzureCommunicationServices: "azureCommunicationServices";
};
export declare const PstnCallDurationSourceObject: {
    readonly Microsoft: "microsoft";
    readonly Operator: "operator";
};
export declare const PstnUserBlockModeObject: {
    readonly Blocked: "blocked";
    readonly Unblocked: "unblocked";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const ServiceRoleObject: {
    readonly Unknown: "unknown";
    readonly CustomBot: "customBot";
    readonly SkypeForBusinessMicrosoftTeamsGateway: "skypeForBusinessMicrosoftTeamsGateway";
    readonly SkypeForBusinessAudioVideoMcu: "skypeForBusinessAudioVideoMcu";
    readonly SkypeForBusinessApplicationSharingMcu: "skypeForBusinessApplicationSharingMcu";
    readonly SkypeForBusinessCallQueues: "skypeForBusinessCallQueues";
    readonly SkypeForBusinessAutoAttendant: "skypeForBusinessAutoAttendant";
    readonly MediationServer: "mediationServer";
    readonly MediationServerCloudConnectorEdition: "mediationServerCloudConnectorEdition";
    readonly ExchangeUnifiedMessagingService: "exchangeUnifiedMessagingService";
    readonly MediaController: "mediaController";
    readonly ConferencingAnnouncementService: "conferencingAnnouncementService";
    readonly ConferencingAttendant: "conferencingAttendant";
    readonly AudioTeleconferencerController: "audioTeleconferencerController";
    readonly SkypeForBusinessUnifiedCommunicationApplicationPlatform: "skypeForBusinessUnifiedCommunicationApplicationPlatform";
    readonly ResponseGroupServiceAnnouncementService: "responseGroupServiceAnnouncementService";
    readonly Gateway: "gateway";
    readonly SkypeTranslator: "skypeTranslator";
    readonly SkypeForBusinessAttendant: "skypeForBusinessAttendant";
    readonly ResponseGroupService: "responseGroupService";
    readonly Voicemail: "voicemail";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const UserFeedbackRatingObject: {
    readonly NotRated: "notRated";
    readonly Bad: "bad";
    readonly Poor: "poor";
    readonly Fair: "fair";
    readonly Good: "good";
    readonly Excellent: "excellent";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const VideoCodecObject: {
    readonly Unknown: "unknown";
    readonly Invalid: "invalid";
    readonly Av1: "av1";
    readonly H263: "h263";
    readonly H264: "h264";
    readonly H264s: "h264s";
    readonly H264uc: "h264uc";
    readonly H265: "h265";
    readonly Rtvc1: "rtvc1";
    readonly RtVideo: "rtVideo";
    readonly Xrtvc1: "xrtvc1";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const WifiBandObject: {
    readonly Unknown: "unknown";
    readonly Frequency24GHz: "frequency24GHz";
    readonly Frequency50GHz: "frequency50GHz";
    readonly Frequency60GHz: "frequency60GHz";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const WifiRadioTypeObject: {
    readonly Unknown: "unknown";
    readonly Wifi80211a: "wifi80211a";
    readonly Wifi80211b: "wifi80211b";
    readonly Wifi80211g: "wifi80211g";
    readonly Wifi80211n: "wifi80211n";
    readonly Wifi80211ac: "wifi80211ac";
    readonly Wifi80211ax: "wifi80211ax";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map