import { Subject, ReplaySubject, BehaviorSubject } from 'rxjs';
import { NsContent } from '../_services/widget-content.model';
import * as i0 from "@angular/core";
export interface IViewerTocCard {
    identifier: string;
    viewerUrl: string;
    thumbnailUrl: string;
    title: string;
    duration: number;
    type: string;
    mimeType: NsContent.EMimeTypes;
    complexity: string;
    children: null | IViewerTocCard[];
    primaryCategory: NsContent.EPrimaryCategory;
    collectionId: string | null;
    collectionType: string;
    batchId: string | number;
    viewMode: string;
    optionalReading: boolean;
    channelId: string;
}
export interface IViewerTocChangeEvent {
    tocAvailable: boolean;
    nextResource: IViewerTocCard | null;
    prevResource: IViewerTocCard | null;
    queryMLParams: any;
}
export interface IViewerResourceOptions {
    page?: {
        min: number;
        max: number;
        current: number;
        queryParamKey: string;
    };
    zoom?: {
        min: number;
        max: number;
        current: number;
        queryParamKey: string;
    };
}
export type TStatus = 'pending' | 'done' | 'error' | 'none';
export declare class ViewerDataService {
    resourceId: string | null;
    resource: NsContent.IContent | null;
    primaryCategory: string | null;
    collectionId: string | null;
    error: any;
    status: TStatus;
    resourceChangedSubject: Subject<string>;
    optionalReading: boolean;
    changedSubject: ReplaySubject<unknown>;
    tocChangeSubject: ReplaySubject<IViewerTocChangeEvent>;
    navSupportForResource: ReplaySubject<IViewerResourceOptions>;
    isSkipBtn: BehaviorSubject<boolean>;
    constructor();
    reset(resourceId?: string | null, status?: TStatus, primaryCategory?: string, collectionId?: string): void;
    updateResource(resource?: NsContent.IContent | null, error?: any | null): void;
    updateNextPrevResource(isValid: boolean, prev: IViewerTocCard | null, next: IViewerTocCard | null, queryMLParams: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewerDataService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ViewerDataService>;
}
//# sourceMappingURL=viewer-data.service.d.ts.map