import * as i0 from '@angular/core';
import { OnInit, OnDestroy, ElementRef, AfterContentInit, TemplateRef, EnvironmentProviders } from '@angular/core';
import { IStepOption, TourAnchorDirective, TourService, TourHotkeyListenerComponent, BaseTourProxyAnchor } from 'ngx-ui-tour-core';
export { Direction, StepChangeParams, StepDimensions, TourState, UI_TOUR_OPTIONS } 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 {
    readonly tourAnchor: i0.InputSignal<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; "isSignal": true; }; }, {}, 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 {
    readonly defaultTourStepTemplate: i0.Signal<TemplateRef<any>>;
    readonly stepTemplate: i0.InputSignal<TemplateRef<{
        step: INgbStepOption;
    }>>;
    readonly stepTemplateContent: i0.Signal<TemplateRef<any>>;
    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; "isSignal": true; }; }, {}, ["stepTemplateContent"], never, true, never>;
}

declare class TourProxyAnchorComponent extends BaseTourProxyAnchor {
    protected readonly anchorDirective: TourAnchorNgBootstrapDirective;
    readonly anchorEl: i0.InputSignal<string | HTMLElement>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourProxyAnchorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TourProxyAnchorComponent, "tour-proxy-anchor", never, { "anchorEl": { "alias": "anchorEl"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof TourAnchorNgBootstrapDirective; inputs: { "tourAnchor": "anchorId"; }; outputs: {}; }]>;
}

declare const TourNgBootstrap: readonly [typeof TourAnchorNgBootstrapDirective, typeof TourStepTemplateComponent, typeof TourProxyAnchorComponent];

declare function provideUiTour(config?: INgbStepOption): EnvironmentProviders;

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