"use strict"; import Session from "./Session"; import { AutoJoinPolicy, Capability, DefaultActionPolicy, ReceiverType, VolumeControlType } from "./enums"; export class ApiConfig { constructor( public sessionRequest: SessionRequest, public sessionListener: (session: Session) => void, public receiverListener: (availability: string) => void, public autoJoinPolicy: string = AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED, public defaultActionPolicy: string = DefaultActionPolicy.CREATE_SESSION ) {} } export class CredentialsData { constructor(public credentials: string, public credentialsData: string) {} } export class DialRequest { constructor( public appName: string, public launchParameter: Nullable = null ) {} } export class Error { constructor( public code: string, public description: Nullable = null, public details: any = null ) {} } export class Image { width: Nullable = null; height: Nullable = null; constructor(public url: string) {} } export class Receiver { displayStatus: Nullable = null; isActiveInput: Nullable = null; receiverType = ReceiverType.CAST; constructor( public label: string, public friendlyName: string, public capabilities: Capability[] = [], public volume: Nullable = null ) {} } export class ReceiverDisplayStatus { showStop: Nullable = null; constructor(public statusText: string, public appImages: Image[]) {} } export class SenderApplication { packageId: Nullable = null; url: Nullable = null; constructor(public platform: string) {} } export class SessionRequest { language: Nullable = null; constructor( public appId: string, public capabilities = [Capability.VIDEO_OUT, Capability.AUDIO_OUT], public requestSessionTimeout = new Timeout().requestSession, public androidReceiverCompatible = false, public credentialsData: Nullable = null ) {} } export class Timeout { leaveSession = 3000; requestSession = 60000; sendCustomMessage = 3000; setReceiverVolume = 3000; stopSession = 3000; } export class Volume { controlType?: VolumeControlType; stepInterval?: number; constructor( public level: Nullable = null, public muted: Nullable = null ) {} }