import { BasePlayer } from '../../core/dist/BasePlayer';
import { Chapter, ChapterSegment } from '../../core/dist/index';
import { ChapterConfig, VideoChapters, VideoSegment } from './chapters/types/ChapterTypes';
import type { FlashNewsTickerConfig } from './react/types/FlashNewsTickerTypes';
declare global {
    interface Window {
        Hls: any;
        dashjs: any;
        cast?: any;
        chrome?: any;
        YT?: any;
        __onGCastApiAvailable?: (isAvailable: boolean) => void;
    }
}
export declare class WebPlayer extends BasePlayer {
    protected video: HTMLVideoElement | null;
    private hls;
    private dash;
    private qualities;
    private currentQualityIndex;
    private autoQuality;
    private useCustomControls;
    private controlsContainer;
    private volumeHideTimeout;
    private hideControlsTimeout;
    private isVolumeSliding;
    private availableQualities;
    private availableSubtitles;
    private currentQuality;
    private currentSubtitle;
    private currentPlaybackRate;
    private isDragging;
    private settingsConfig;
    private watermarkCanvas;
    private playerWrapper;
    private flashTickerContainer;
    private flashTickerTopElement;
    private flashTickerBottomElement;
    private previewGateHit;
    private paymentSuccessTime;
    private paymentSuccessful;
    private isPaywallActive;
    private authValidationInterval;
    private overlayRemovalAttempts;
    private maxOverlayRemovalAttempts;
    private lastSecurityCheck;
    private castContext;
    private remotePlayer;
    private remoteController;
    private isCasting;
    private _castTrackIdByKey;
    private selectedSubtitleKey;
    private _kiTo;
    private paywallController;
    private _playPromise;
    private _deferredPause;
    private _lastToggleAt;
    private _TOGGLE_DEBOUNCE_MS;
    private hasTriedButtonFallback;
    private lastUserInteraction;
    private showTimeTooltip;
    private tapStartTime;
    private tapStartX;
    private tapStartY;
    private lastTapTime;
    private lastTapX;
    private tapCount;
    private longPressTimer;
    private isLongPressing;
    private longPressPlaybackRate;
    private tapResetTimer;
    private fastBackwardInterval;
    private handleSingleTap;
    private handleDoubleTap;
    private handleLongPress;
    private handleLongPressEnd;
    private autoplayCapabilities;
    private autoplayRetryPending;
    private autoplayRetryAttempts;
    private maxAutoplayRetries;
    private chapterManager;
    private hasAppliedStartTime;
    private coreChapterManager;
    private chapterConfig;
    private qualityFilter;
    private premiumQualities;
    private youtubeNativeControls;
    private isAdPlaying;
    private fallbackSourceIndex;
    private fallbackErrors;
    private isLoadingFallback;
    private currentRetryAttempt;
    private lastFailedUrl;
    private isFallbackPosterMode;
    private debugLog;
    private debugError;
    private debugWarn;
    initialize(container: HTMLElement | string, config?: any): Promise<void>;
    protected setupPlayer(): Promise<void>;
    private autoplayAttempted;
    private setupVideoEventListeners;
    private getMediaErrorMessage;
    private updateBufferProgress;
    load(source: any): Promise<void>;
    private loadVideoSource;
    private tryFallbackSource;
    private showFallbackPoster;
    private detectSourceType;
    private loadHLS;
    private handleHLSError;
    private loadDASH;
    private updateDASHQuality;
    private loadNative;
    private loadYouTube;
    private youtubePlayer;
    private youtubePlayerReady;
    private youtubeIframe;
    private createYouTubePlayer;
    private loadYouTubeAPI;
    private waitForYouTubeAPI;
    private onYouTubePlayerReady;
    private onYouTubePlayerStateChange;
    private updateYouTubeUI;
    private onYouTubePlayerError;
    private hideCustomControls;
    private youtubeTimeTrackingInterval;
    private startYouTubeTimeTracking;
    private updateYouTubeProgressBar;
    protected loadScript(src: string): Promise<void>;
    private loadSubtitles;
    private isAbortPlayError;
    private isAutoplayRestrictionError;
    private detectAutoplayCapabilities;
    private hasUserActivation;
    private attemptIntelligentAutoplay;
    private setupAutoplayRetry;
    private showUnmuteButton;
    private setupClickToUnmute;
    private clickToUnmuteHandler;
    private hideUnmuteButton;
    private updateTimeTooltip;
    private hideTimeTooltip;
    private setupUserInteractionTracking;
    play(): Promise<void>;
    pause(): void;
    requestPause(): void;
    private safeSetCurrentTime;
    seek(time: number): void;
    setVolume(level: number): void;
    mute(): void;
    unmute(): void;
    getCurrentTime(): number;
    getQualities(): any[];
    getCurrentQuality(): any;
    setQuality(index: number): void;
    setPlaybackRate(rate: number): void;
    setFlashNewsTicker(config: FlashNewsTickerConfig): void;
    private createTickerElement;
    private calculateTickerDuration;
    setAutoQuality(enabled: boolean): void;
    enterFullscreen(): Promise<void>;
    exitFullscreen(): Promise<void>;
    enterPictureInPicture(): Promise<void>;
    exitPictureInPicture(): Promise<void>;
    focusPlayer(): void;
    showFullscreenTip(): void;
    private isBraveBrowser;
    private checkFullscreenPermissions;
    private isPrivateWindow;
    triggerFullscreenButton(): void;
    private performFullscreenButtonClick;
    private requestFullscreenPermissionBrave;
    enterFullscreenWithBraveSupport(): Promise<void>;
    showTemporaryMessage(message: string): void;
    enterFullscreenSynchronously(): void;
    requestFullscreenWithUserGesture(event: Event): Promise<boolean>;
    showFullscreenInstructions(): void;
    attemptFullscreen(): Promise<boolean>;
    protected applySubtitleTrack(track: any): void;
    protected removeSubtitles(): void;
    private injectStyles;
    private getPlayerStyles;
    private createFrameworkBranding;
    private createNavigationButtons;
    private getNavigationIcon;
    private createCustomControls;
    private setupControlsEventListeners;
    protected setupKeyboardShortcuts(): void;
    protected setupWatermark(): void;
    setPaywallConfig(config: any): void;
    private togglePlayPause;
    private enforceFreePreviewGate;
    setFreeDuration(seconds: number): void;
    resetFreePreviewGate(): void;
    resetPaymentStatus(): void;
    private toggleMuteAction;
    private isMobileDevice;
    private isPipSupported;
    private isIOSDevice;
    private isAndroidDevice;
    private isFullscreenSupported;
    private lockOrientationLandscape;
    private unlockOrientation;
    private handleVolumeChange;
    private seekToPosition;
    private formatTime;
    private updateTimeDisplay;
    private showControls;
    private hideControls;
    private scheduleHideControls;
    private setupAdvancedTapHandling;
    private startFastBackward;
    private stopFastBackward;
    private isFullscreen;
    private setupFullscreenListeners;
    private showShortcutIndicator;
    setSettingsScrollbarStyle(mode: 'default' | 'compact' | 'overlay'): void;
    setSettingsScrollbarConfig(options: {
        widthPx?: number;
        intensity?: number;
    }): void;
    private applyScrollbarPreferencesFromDataset;
    private setupChapterManager;
    private convertToChapters;
    private convertToChapterSegments;
    private mapSegmentAction;
    loadChapters(chapters: VideoChapters): Promise<void>;
    loadChaptersFromUrl(url: string): Promise<void>;
    getCurrentSegment(): VideoSegment | null;
    skipToSegment(segmentId: string): void;
    getSegments(): VideoSegment[];
    updateChapterConfig(newConfig: Partial<ChapterConfig>): void;
    hasChapters(): boolean;
    getChapters(): VideoChapters | null;
    getCoreChapters(): Chapter[];
    getCoreSegments(): ChapterSegment[];
    getCurrentChapterInfo(): Chapter | null;
    seekToChapter(chapterId: string): void;
    getNextChapter(): Chapter | null;
    getPreviousChapter(): Chapter | null;
    setTheme(theme: any): void;
    private _parseRgb;
    private _rgbToString;
    private _lightenRgb;
    private _toRgba;
    private changeVolume;
    private setSpeed;
    private setQualityByLabel;
    private togglePiP;
    private setupCastContextSafe;
    private setupCastContext;
    private enableCastRemoteControl;
    private disableCastRemoteControl;
    private _bindRemotePlayerEvents;
    private updateVolumeUIFromRemote;
    private _syncUIFromRemote;
    private _syncCastButtons;
    private updateSettingsMenu;
    private generateAccordionMenu;
    private detectAvailableQualities;
    private applyQualityFilter;
    setQualityFilter(filter: any): void;
    setAdPlaying(isPlaying: boolean): void;
    isAdCurrentlyPlaying(): boolean;
    private isQualityPremium;
    private isPremiumUser;
    private handlePremiumQualityClick;
    private detectAvailableSubtitles;
    private setupSettingsEventListeners;
    private toggleAccordionSection;
    private hideSettingsMenu;
    private updateAccordionAfterSelection;
    private updateSettingsActiveStates;
    private setPlaybackRateFromSettings;
    private setQualityFromSettings;
    private applyHLSQualityFilter;
    private applyDASHQualityFilter;
    private setSubtitle;
    private _updateCastActiveTracks;
    private onCastButtonClick;
    private showAirPlayPicker;
    private stopCasting;
    private initCast;
    private shareVideo;
    private isTextTruncated;
    private showTextTooltip;
    private hideTextTooltip;
    private setupTextTooltips;
    private smartTruncateText;
    private applySmartTextDisplay;
    private updateMetadataUI;
    private showNotification;
    private canPlayVideo;
    private enforcePaywallSecurity;
    private startOverlayMonitoring;
    private handleSecurityViolation;
    private showSecurityViolationMessage;
    private forceCleanupOverlays;
    showEPGButton(): void;
    hideEPGButton(): void;
    setEPGData(epgData: any): void;
    isEPGButtonVisible(): boolean;
    private cleanup;
    destroy(): Promise<void>;
}
//# sourceMappingURL=WebPlayer.d.ts.map