import Shepherd from 'shepherd.js';
export type TourStep = Shepherd.Step.StepOptions;
export type TourStepButton = Shepherd.Step.StepOptionsButton;
export declare enum ITourEvent {
    'click' = "click",
    'pointerover' = "pointerover",
    'keyup' = "keyup",
    'added' = "added",// added to DOM
    'removed' = "removed"
}
export interface ITourEventOn {
    selector?: string;
    event?: keyof typeof ITourEvent;
}
export interface ITourEventOnOptions {
    timeBeforeShow?: number;
    interval?: number;
}
export interface ITourOptions extends Shepherd.Tour.TourOptions {
    abortOn?: ITourEventOn[];
}
export interface ITourStepAttachToOptions extends ITourEventOnOptions {
    highlight?: boolean;
    retries?: number;
    skipIfNotFound?: boolean;
    else?: string;
    goBackTo?: string;
    skipFromStepCount?: boolean;
}
export interface ITourStepAdvanceOnOptions extends ITourEventOnOptions {
    jumpTo?: string;
    allowGoBack?: boolean;
}
export interface ITourStep extends TourStep {
    attachToOptions?: ITourStepAttachToOptions;
    advanceOnOptions?: ITourStepAdvanceOnOptions;
    advanceOn?: ITourEventOn[] | ITourEventOn | any;
    abortOn?: ITourEventOn[];
    count?: number;
}
declare abstract class TourButtonsActions {
    abstract next(): void;
    abstract back(): void;
    abstract cancel(): void;
    abstract finish(): void;
}
export declare class CovalentGuidedTour extends TourButtonsActions {
    private _destroyedEvent$;
    shepherdTour: Shepherd.Tour;
    stepOptions: ITourStep;
    constructor(stepOptions?: ITourStep);
    newTour(opts?: ITourOptions): void;
    back(): void;
    cancel(): void;
    next(): void;
    finish(): void;
    addSteps(steps: ITourStep[]): void;
    start(): void;
    protected _prepareTour(originalSteps: ITourStep[], finishLabel?: string): ITourStep[];
    private _bindEvent;
}
export {};
