import { OnDestroy, OnInit, AfterViewInit, AfterViewChecked, ElementRef } from '@angular/core';
import { SafeHtml, DomSanitizer, SafeStyle } from '@angular/platform-browser';
import { ActivatedRoute, Router } from '@angular/router';
import { UntypedFormControl } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { Subscription, Observable } from 'rxjs';
import { NsContent } from '../../_services/widget-content.model';
import { WidgetContentService } from '../../_services/widget-content.service';
import { NsWidgetResolver } from '@sunbird-cb/resolver-v2';
import { ConfigurationsService, DataTransferService, EventService, LoggerService, MultilingualTranslationsService, NsPage, TFetchStatus, TelemetryService, UtilityService, WidgetEnrollService } from '@sunbird-cb/utils-v2';
import { WidgetContentLibService, WidgetUserServiceLib } from '@sunbird-cb/consumption';
import { NsAppToc } from '../../models/app-toc.model';
import { AppTocService } from '../../services/app-toc.service';
import { AccessControlService } from '../../services/access-control.service';
import { MobileAppsService } from '../../services/mobile-apps.service';
import { HandleClaimService } from '../../_collection/_common/content-toc/content-services/handle-claim.service';
import { ActionService } from '../../services/action.service';
import { RatingService } from '../../_services/rating.service';
import { ViewerUtilService } from '../../services/viewer-util.service';
import { LoadCheckService } from '../../services/load-check.service';
import { ResetRatingsService } from './../../services/reset-ratings.service';
import { TimerService } from '../../services/timer.service';
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
import { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar';
import { MatSnackBar as MatSnackbarNew } from '@angular/material/snack-bar';
import { NetCoreService } from '../../services/netcore.service';
import { NsPlaylist } from '../../models/playlist.model';
import { NsGoal } from '../../models/goal.model';
import * as i0 from "@angular/core";
export declare enum ErrorType {
    internalServer = "internalServer",
    serviceUnavailable = "serviceUnavailable",
    somethingWrong = "somethingWrong"
}
export declare class AppTocHomeComponent implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit {
    private route;
    private router;
    private contentSvc;
    tocSvc: AppTocService;
    private loggerSvc;
    private configSvc;
    private domSanitizer;
    private authAccessControlSvc;
    private snackBar;
    private dialog;
    private mobileAppsSvc;
    private utilitySvc;
    private actionSVC;
    private viewerSvc;
    private ratingSvc;
    private telemetryService;
    private translate;
    private langtranslations;
    private events;
    private matSnackBar;
    private loadCheckService;
    private handleClaimService;
    private resetRatingsService;
    private timerService;
    enrollSvc: WidgetEnrollService;
    contentLibSvc: WidgetContentLibService;
    dataTransferSvc: DataTransferService;
    private matSnackbarNew;
    private userServiceLib;
    netCoreService: NetCoreService;
    show: boolean;
    changeTab: boolean;
    skeletonLoader: boolean;
    banners: NsAppToc.ITocBanner | null;
    showMoreGlance: boolean;
    content: NsContent.IContent | null;
    contentReadData: NsContent.IContent | null;
    errorCode: NsAppToc.EWsTocErrorCode | null;
    resumeData: any;
    nsCardContentData: any;
    batchData: NsContent.IBatchListResponse | null;
    currentCourseBatchId: string | null;
    userEnrollmentList: NsContent.ICourse[];
    routeSubscription: Subscription | null;
    pageNavbar: Partial<NsPage.INavBackground>;
    isCohortsRestricted: boolean;
    sticky: boolean;
    isInIframe: boolean;
    cbPlanEndDate: any;
    cbPlanDuration: any;
    enrolledCourseData: any;
    forPreview: any;
    analytics: any;
    errorWidgetData: NsWidgetResolver.IRenderConfigWithTypedData<any>;
    isAuthor: boolean;
    authorBtnWidget: NsPage.INavLink;
    tocConfig: any;
    primaryCategory: typeof NsContent.EPrimaryCategory;
    courseCategory: typeof NsContent.ECourseCategory;
    WFBlendedProgramStatus: typeof NsContent.WFBlendedProgramStatus;
    askAuthorEnabled: boolean;
    trainingLHubEnabled: boolean;
    trainingLHubCount$?: Observable<number>;
    body: SafeHtml | null;
    viewMoreRelatedTopics: boolean;
    hasTocStructure: boolean;
    tocStructure: NsAppToc.ITocStructure | null;
    contentParents: {
        [key: string]: NsAppToc.IContentParentResponse[];
    };
    objKeys: {
        (o: object): string[];
        (o: {}): string[];
    };
    fragment: string;
    activeFragment: Observable<string>;
    currentFragment: string;
    showScroll: boolean;
    showScrollHeight: number;
    hideScrollHeight: number;
    elementPosition: any;
    batchSubscription: Subscription | null;
    batchDataSubscription: Subscription | null;
    resumeDataSubscription: Subscription | null;
    menuElement: ElementRef;
    batchControl: UntypedFormControl;
    contentProgress: number;
    bannerUrl: SafeStyle | null;
    routePath: string;
    validPaths: Set<string>;
    routerParamSubscription: Subscription | null;
    initialrouteData: any;
    actionBtnStatus: string;
    isRegistrationSupported: boolean;
    showIntranetMessage: boolean;
    firstResourceLink: {
        url: string;
        queryParams: {
            [key: string]: any;
        };
    } | null;
    resumeDataLink: {
        url: string;
        queryParams: {
            [key: string]: any;
        };
    } | null;
    showTakeAssessment: NsAppToc.IPostAssessment | null;
    checkRegistrationSources: Set<string>;
    btnPlaylistConfig: NsPlaylist.IBtnPlaylist | null;
    btnGoalsConfig: NsGoal.IBtnGoal | null;
    externalContentFetchStatus: TFetchStatus;
    registerForExternal: boolean;
    isGoalsEnabled: boolean;
    contextId?: string;
    contextPath?: string;
    defaultSLogo: string;
    disableEnrollBtn: boolean;
    isAssessVisible: boolean;
    isPracticeVisible: boolean;
    certificateOpen: boolean;
    breadcrumbs: any;
    historyData: any;
    courseCompleteState: number;
    userId: any;
    userRating: any;
    environment: any;
    dakshtaName: string;
    cscmsUrl: string;
    showBtn: boolean;
    channelId: any;
    selectedBatchData: any;
    selectedBatchSubscription: any;
    serverDateSubscription: any;
    serverDate: any;
    kparray: any;
    enrollBtnLoading: boolean;
    isAcbpCourse: boolean;
    isAcbpClaim: boolean;
    courseID: any;
    isClaimed: boolean;
    monthlyCapExceed: boolean;
    isCompletedThisMonth: boolean;
    startDate: any;
    endDate: any;
    startDateDifference: any;
    endDateDifference: any;
    rcElement: ElementRef;
    bannerElem: ElementRef;
    contentSource: ElementRef;
    sourceEllipsis: boolean;
    scrollLimit: number;
    rcElem: {
        offSetTop: number;
        BottomPos: number;
    };
    scrolled: boolean;
    pathSet: Set<unknown>;
    canShare: boolean;
    enableShare: boolean;
    rootOrgId: any;
    certId: any;
    mobile1200: any;
    assessmentStrip: any;
    learnAdvisoryData: any;
    contentCreatorData: any;
    private destroySubject$;
    timerUnsubscribe: any;
    timer: any;
    isReleventBtnHovered: boolean;
    SAKSHAMAI_ICON_NORMAL: string;
    SAKSHAMAI_ICON_LOADER: string;
    recommendedCoursesId: string;
    feedbackGiven: any;
    preAssessmentCompletionStatus: boolean;
    fromAITutor: boolean;
    selectedLanguage: any;
    languageList: {
        name: string;
        value: string;
    }[];
    handleScroll(): void;
    constructor(route: ActivatedRoute, router: Router, contentSvc: WidgetContentService, tocSvc: AppTocService, loggerSvc: LoggerService, configSvc: ConfigurationsService, domSanitizer: DomSanitizer, authAccessControlSvc: AccessControlService, snackBar: MatSnackBar, dialog: MatDialog, mobileAppsSvc: MobileAppsService, utilitySvc: UtilityService, actionSVC: ActionService, viewerSvc: ViewerUtilService, ratingSvc: RatingService, telemetryService: TelemetryService, translate: TranslateService, langtranslations: MultilingualTranslationsService, events: EventService, matSnackBar: MatSnackBar, loadCheckService: LoadCheckService, handleClaimService: HandleClaimService, resetRatingsService: ResetRatingsService, timerService: TimerService, enrollSvc: WidgetEnrollService, contentLibSvc: WidgetContentLibService, dataTransferSvc: DataTransferService, matSnackbarNew: MatSnackbarNew, userServiceLib: WidgetUserServiceLib, netCoreService: NetCoreService, environment: any);
    ngOnInit(): void;
    getKarmapointsLimit(): void;
    isCourseCompletedOnThisMonth(): void;
    filteredAcbpList(res: any): any;
    findACPB(): void;
    raiseTelemeteryForProvider(providerName: string, prividerId: string): void;
    raiseTelemetry(): void;
    onClickOfClaim(event: any): void;
    ngAfterViewInit(): void;
    handleBreadcrumbs(): void;
    ngAfterViewChecked(): void;
    get enableAnalytics(): boolean;
    get isResource(): boolean;
    get getStartDate(): string;
    get isBatchInProgress(): boolean;
    private initData;
    getUserRating(fireUpdate: boolean): void;
    fetchUserWFForBlended(): void;
    checkIfBatchExists(latest: any): false | NsContent.IBatch;
    getBatchId(): string;
    handleAutoBatchAssign(): void;
    autoEnrollCuratedProgram(programType: any, batchData: any): void;
    autoAssignEnroll(): void;
    navigateToPlayerPage(batchId: string): void;
    fetchBatchDetails(): void;
    private getContinueLearningData;
    generateResumeDataLinkNew(): void;
    scrollToTop(): void;
    getCompetencies(competencies: any): any[];
    get showIntranetMsg(): boolean;
    get showStart(): {
        show: boolean;
        msg: string;
    };
    get isPostAssessment(): boolean;
    get isMobile(): boolean;
    get showSubtitleOnBanner(): boolean;
    handleEnrollmentEndDate(batch: any): boolean;
    private openSnackbar;
    get showInstructorLedMsg(): boolean;
    get isHeaderHidden(): boolean;
    get showActionButtons(): boolean;
    get showButtonContainer(): boolean;
    private getResumeDataFromList;
    private modifySensibleContentRating;
    private getLearningUrls;
    private assignPathAndUpdateBanner;
    private updateBannerUrl;
    playIntroVideo(): void;
    get sanitizedIntroductoryVideoIcon(): SafeStyle;
    private fetchExternalContentAccess;
    getRatingIcon(ratingIndex: number): 'star' | 'star_border' | 'star_half';
    private checkRegistrationStatus;
    generateQuery(type: 'RESUME' | 'START_OVER' | 'START'): {
        [key: string]: string;
    };
    get isInIFrame(): boolean;
    openFeedbackDialog(content: any): void;
    updateProgress(status: number, resourceId: any): void;
    getProgramDuration(batchData: any): number | "";
    withdrawOrEnroll(data: string): void;
    getServerDateTime(): void;
    handleCapitalize(str: string, type?: string): string;
    handleParseJsonData(s: any): any;
    handleNavigateToReviews(): void;
    raiseCertIntreactTelemetry(): void;
    translateLabels(label: string, type: any): any;
    getLastPlayedResource(): void;
    expandThePath(resourceId: string): void;
    raiseEnrollTelemetry(): void;
    raiseEnrollTelementryForSakshamAIGenerated(): void;
    onClickOfShare(): void;
    raiseTelemetryForShare(subType: any): void;
    resetEnableShare(): void;
    translateLabel(label: string, type: any): any;
    ngOnDestroy(): void;
    programEnrollCall(batchData: any): void;
    raiseTelemetryForPublic(): void;
    fetchUserEnrollmentData(): void;
    checkIfUserEnrolled(): Promise<void>;
    handleAcceptRelevent(): void;
    handleDeclineRelevent(): void;
    contentViewEventForNetCore(eventType: any): void;
    secondsToTime(d: any): string;
    saveFeedback(comment: string, rating?: number): Promise<void>;
    playResumeForAI(): void;
    enrollUserToAI(): void;
    generatePreAssessmentQuery(type: 'RESUME' | 'START_OVER' | 'START'): {
        [key: string]: string;
    };
    routeToPreAssessent(): void;
    getPreAssessmentCompletionStatus(): void;
    onLanguageSelect(lang: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AppTocHomeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AppTocHomeComponent, "ws-app-app-toc-home", never, { "forPreview": { "alias": "forPreview"; "required": false; }; }, {}, never, never, false, never>;
}
//# sourceMappingURL=app-toc-home.component.d.ts.map