import { ErrorHandler, EventEmitter, NgZone } from '@angular/core';
import { BrowserDOMSelectorService } from './browser-dom-selector.service';
import { OnboardingItemContainer } from '../models/onboarding-item-container.model';
import { OnboardingConfiguration } from '../models/onboarding-configuration.model';
import { OnboardingItem } from '../models/onboarding-item.model';
import { EnabledStatusBaseService } from './enabled-status-base.service';
import { SeenSelectorsBaseService } from './seen-selectors-base.service';
import * as i0 from "@angular/core";
/**
 * The OnboardingService manages the configuration and the status of the onboarding component.
 *
 * The OnboardingComponent listens to the visibleItemsChanged event and retrieves new onboarding items from the visibleItems object.
 */
export declare class OnboardingService {
    private browserDomSelectorService;
    private loadAndSaveSeenSelectorsService;
    private loadAndSaveEnabledStatusService;
    private errorHandler;
    private zone;
    /**
     * Container with currently visible onboarding items (grouped).
     * OnboardingComponent must iterate through these groups.
     *
     * called by OnboardingComponent
     */
    readonly visibleItems: OnboardingItemContainer;
    /**
     * called by OnboardingComponent
     */
    visibleItemsChanged: EventEmitter<any>;
    private addSeenSelectorDebounceSubscription;
    private enabledChangedDebounceSubscription;
    private refreshSubscription;
    private items;
    private seenSelectors;
    private enabled;
    private configuration;
    private readonly defaultConfiguration;
    constructor(browserDomSelectorService: BrowserDOMSelectorService, loadAndSaveSeenSelectorsService: SeenSelectorsBaseService, loadAndSaveEnabledStatusService: EnabledStatusBaseService, errorHandler: ErrorHandler, zone: NgZone);
    /**
     * returns the count of the registered items
     */
    get registeredItemsCount(): number;
    /**
     * Configures the onboarding icons and fonts.
     *
     * If you want to change the default settings, then call this in your module where you import this
     * service as provider and set global defaults like icon properties
     */
    configure(configuration: OnboardingConfiguration): void;
    /** used internal only to retrieve to configuration from configure()*/
    getConfiguration(): OnboardingConfiguration;
    /**
     * registers [[OnboardingItem]]s in items, returns the method to unregister items (e.g. in ngOnDestroy)
     */
    register(items: Array<OnboardingItem>): Function;
    /**
     * Check which onboarding items are visible. Emit visibleItemsChanged event.
     * called by OnboardingComponent
     */
    check(): void;
    /**
     * Mark all visible items as SEEN, remove them from visible list and emit change event.
     * called by OnboardingComponent
     */
    hide(): void;
    /**
     * called by OnboardingComponent
     *
     * Disables the onboarding
     */
    disable(): void;
    /**
     * called by OnboardingComponent
     *
     * Enables the onboarding
     */
    enable(): void;
    /**
     * called by OnboardingComponent
     */
    isEnabled(): boolean;
    /**
     * called by OnboardingComponent
     */
    clearSeenSelectors(): void;
    private init;
    private addToSeenSelectors;
    private seenSelectorsChanged;
    private enabledChanged;
    private getNotSeenItems;
    private startRefreshTimer;
    private loadSeenSelectors;
    private saveSeenSelectors;
    private loadEnabledStatus;
    private saveEnabledStatus;
    static ɵfac: i0.ɵɵFactoryDeclaration<OnboardingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OnboardingService>;
}
