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

interface INgbStepOption extends IStepOption {
    placement?: Placement | 'after' | 'after-top' | 'after-bottom' | 'top-after' | 'top-before' | 'bottom-after' | 'bottom-before' | 'before' | 'before-top' | 'before-bottom' | 'below' | 'above';
    useLegacyTitle?: boolean;
}

declare class TourAnchorNgBootstrapDirective implements OnInit, OnDestroy, TourAnchorDirective {
    tourAnchor: string;
    isActive: i0.WritableSignal<boolean>;
    readonly element: ElementRef<any>;
    private readonly tourService;
    private readonly tourStepTemplate;
    private popoverDirective;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    showTourStep(step: INgbStepOption): Promise<void>;
    private setOffsetModifier;
    hideTourStep(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourAnchorNgBootstrapDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TourAnchorNgBootstrapDirective, "[tourAnchor]", never, { "tourAnchor": { "alias": "tourAnchor"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.NgbPopover; inputs: {}; outputs: {}; }]>;
}

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

declare class TourStepTemplateComponent extends TourHotkeyListenerComponent implements AfterContentInit {
    defaultTourStepTemplate: TemplateRef<{
        step: INgbStepOption;
    }>;
    stepTemplate: TemplateRef<{
        step: INgbStepOption;
    }>;
    stepTemplateContent: TemplateRef<{
        step: INgbStepOption;
    }>;
    private readonly tourStepTemplateService;
    readonly tourService: NgbTourService<INgbStepOption>;
    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 TourProxyAnchorComponent extends BaseTourProxyAnchor {
    protected readonly anchorDirective: TourAnchorNgBootstrapDirective;
    anchorEl: string | HTMLElement;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourProxyAnchorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TourProxyAnchorComponent, "tour-proxy-anchor", never, { "anchorEl": { "alias": "anchorEl"; "required": true; }; }, {}, never, never, true, [{ directive: typeof TourAnchorNgBootstrapDirective; inputs: { "tourAnchor": "anchorId"; }; outputs: {}; }]>;
}

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

export { TourAnchorNgBootstrapDirective, TourNgBootstrapModule, TourProxyAnchorComponent, NgbTourService as TourService, TourStepTemplateComponent };
export type { INgbStepOption as IStepOption };
