import UserAgentParser from '../useragentparser/UserAgentParser'; import BrowserBehavior from './BrowserBehavior'; import ExtendedBrowserBehavior from './ExtendedBrowserBehavior'; export default class DefaultBrowserBehavior implements BrowserBehavior, ExtendedBrowserBehavior { private readonly FALLBACK_BROWSER; private readonly browser; private readonly userAgentParser; constructor(userAgentParser?: UserAgentParser); private browserSupport; private browserName; private chromeLike; private webkitBrowsers; private static MIN_IOS_SUPPORT_CANVAS_STREAM_PLAYBACK; private static MIN_IOS_NON_SAFARI_SUPPORT_CANVAS_STREAM_PLAYBACK; version(): string; majorVersion(): number; osMajorVersion(): number; deviceName(): string; osName(): string; osVersion(): string; private engine; private engineMajorVersion; name(): string; hasChromiumWebRTC(): boolean; hasWebKitWebRTC(): boolean; hasFirefoxWebRTC(): boolean; requiresPlaybackLatencyHintForAudioContext(): boolean; supportsCanvasCapturedStreamPlayback(): boolean; supportsBackgroundFilter(): boolean; supportsVideoLayersAllocationRtpHeaderExtension(): boolean; supportsDependencyDescriptorRtpHeaderExtension(): boolean; supportsScalableVideoCoding(): boolean; supportsAudioRedundancy(): boolean; requiresResolutionAlignment(width: number, height: number): [number, number]; requiresCheckForSdpConnectionAttributes(): boolean; requiresIceCandidateGatheringTimeoutWorkaround(): boolean; requiresBundlePolicy(): RTCBundlePolicy; requiresNoExactMediaStreamConstraints(): boolean; requiresGroupIdMediaStreamConstraints(): boolean; getDisplayMediaAudioCaptureSupport(): boolean; doesNotSupportMediaDeviceLabels(): boolean; isSupported(): boolean; isSimulcastSupported(): boolean; supportDownlinkBandwidthEstimation(): boolean; supportString(): string; supportedVideoCodecs(): Promise; supportsSetSinkId(): boolean; disableResolutionScaleDown(): boolean; disable480pResolutionScaleDown(): boolean; requiresDisablingH264Encoding(): boolean; requiresVideoPlayWorkaround(): boolean; requiresAudioContextResetOnDeviceFailureForWebAudio(): boolean; /** * Check if the current browser supports the [[VideoFxProcessor]]. * @returns boolean representing if browser supports [[VideoFxProcessor]]. */ isVideoFxSupportedBrowser(): boolean; updateWithHighEntropyValues(alwaysOverride?: boolean): Promise; private isIOSSafari; private isSafari; private isFirefox; private isIOSFirefox; private isIOSChrome; private isChrome; private isEdge; private isIOSEdge; private isSamsungInternet; private isAndroid; private isPixel3; private isIOS; }