import * as i0 from '@angular/core';
import { AfterContentInit, TemplateRef, OnInit, OnDestroy, ElementRef } from '@angular/core';
import { IStepOption, TourService, TourHotkeyListenerComponent, TourAnchorDirective } from 'ngx-ui-tour-core';
export { Direction, StepChangeParams, StepDimensions, TourState } from 'ngx-ui-tour-core';
import { AvailableBSPositions } from 'ngx-bootstrap/positioning';
import { PopoverDirective } from 'ngx-bootstrap/popover';

interface INgxbStepOption extends IStepOption {
    placement?: AvailableBSPositions;
    useLegacyTitle?: boolean;
}

declare class NgxbTourService<T extends INgxbStepOption = INgxbStepOption> extends TourService<T> {
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxbTourService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NgxbTourService<any>>;
}

declare class TourStepTemplateComponent extends TourHotkeyListenerComponent implements AfterContentInit {
    defaultTourStepTemplate: TemplateRef<{
        step: INgxbStepOption;
    }>;
    stepTemplate: TemplateRef<{
        step: INgxbStepOption;
    }>;
    stepTemplateContent: TemplateRef<{
        step: INgxbStepOption;
    }>;
    private readonly tourStepTemplateService;
    readonly tourService: NgxbTourService<INgxbStepOption>;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourStepTemplateComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TourStepTemplateComponent, "tour-step-template", never, { "stepTemplate": { "alias": "stepTemplate"; "required": false; }; }, {}, ["stepTemplateContent"], never, true, never>;
}

declare class TourAnchorNgxBootstrapPopoverDirective extends PopoverDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<TourAnchorNgxBootstrapPopoverDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TourAnchorNgxBootstrapPopoverDirective, "[tourAnchor]", never, {}, {}, never, never, true, never>;
}
declare class TourAnchorNgxBootstrapDirective implements OnInit, OnDestroy, TourAnchorDirective {
    tourAnchor: string;
    isActive: i0.WritableSignal<boolean>;
    readonly element: ElementRef<any>;
    private readonly tourService;
    private readonly tourStepTemplate;
    private readonly popoverDirective;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    showTourStep(step: INgxbStepOption): void;
    hideTourStep(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourAnchorNgxBootstrapDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TourAnchorNgxBootstrapDirective, "[tourAnchor]", never, { "tourAnchor": { "alias": "tourAnchor"; "required": false; }; }, {}, never, never, true, never>;
}

declare class TourNgxBootstrapModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TourNgxBootstrapModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TourNgxBootstrapModule, never, [typeof TourAnchorNgxBootstrapDirective, typeof TourAnchorNgxBootstrapPopoverDirective, typeof TourStepTemplateComponent], [typeof TourAnchorNgxBootstrapDirective, typeof TourAnchorNgxBootstrapPopoverDirective, typeof TourStepTemplateComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TourNgxBootstrapModule>;
}

export { TourAnchorNgxBootstrapDirective, TourAnchorNgxBootstrapPopoverDirective, TourNgxBootstrapModule, NgxbTourService as TourService, TourStepTemplateComponent };
export type { INgxbStepOption as IStepOption };
