import { Observable } from 'rxjs';
import { CacheService } from '../../core/cache.service';
import { Tour, TourEvent } from './tour-types';
import * as i0 from "@angular/core";
export declare class TourService {
    private cacheService;
    events: Observable<TourEvent>;
    constructor(cacheService: CacheService);
    /**
     * Start a tour of the application. Allows one or many tours to be sent in, each will
     * follow the next. If multiple tours have exit steps defined only the final tour will
     * execute the exit step.
     * @param tours
     */
    start(tours: Tour[], isAutoStart?: boolean): void;
    end(): void;
    append(tours: Tour[], isAutoStart?: boolean): void;
    /**
     * Returns a formatted cache key for tours
     * @param tour
     * @returns
     */
    getCacheKey(tour: Tour): string;
    /**
     * Given a tour, check to see if it's been completed
     * @param tour
     * @returns
     */
    hasTourBeenViewed(tour: Tour): boolean;
    /**
     * Given a list of tours, check to see if any will show to the user
     * @param tours
     * @returns
     */
    haveAllToursBeenViewed(tours: Tour[]): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TourService>;
}
