import { VideoSegment, VideoChapters, ChapterConfig, ChapterEvents, ChapterMarker, SegmentType } from './types/ChapterTypes';
export declare class ChapterManager {
    private playerContainer;
    private videoElement;
    private chapters;
    private currentSegment;
    private previousSegment;
    private skipButtonController;
    private creditsButtonController;
    private config;
    private eventListeners;
    private isDestroyed;
    constructor(playerContainer: HTMLElement, videoElement: HTMLVideoElement, config?: ChapterConfig);
    loadChapters(chapters: VideoChapters): Promise<void>;
    loadChaptersFromUrl(url: string): Promise<void>;
    getCurrentSegment(currentTime: number): VideoSegment | null;
    skipToNextSegment(currentSegment: VideoSegment): void;
    skipToSegment(segmentId: string): void;
    getSegments(): VideoSegment[];
    getSegment(segmentId: string): VideoSegment | null;
    getSegmentsByType(type: SegmentType): VideoSegment[];
    getChapterMarkers(): ChapterMarker[];
    updateConfig(newConfig: Partial<ChapterConfig>): void;
    on<K extends keyof ChapterEvents>(event: K, listener: (data: ChapterEvents[K]) => void): void;
    off<K extends keyof ChapterEvents>(event: K, listener: (data: ChapterEvents[K]) => void): void;
    destroy(): void;
    hasChapters(): boolean;
    getChapters(): VideoChapters | null;
    private setupTimeUpdateListener;
    private checkCurrentSegment;
    private shouldShowSkipButton;
    private handleWatchCredits;
    private handleNextEpisode;
    private handleAutoRedirect;
    private getNextContentSegment;
    private sortSegments;
    private validateChapters;
    private updateChapterMarkers;
    private removeChapterMarkers;
    private emit;
}
//# sourceMappingURL=ChapterManager.d.ts.map