import * as i0 from '@angular/core';
import { AfterViewInit, TemplateRef, OnInit, OnDestroy, ElementRef } from '@angular/core';
import { Popover } from 'primeng/popover';
import { IStepOption, TourService, TourHotkeyListenerComponent, TourAnchorDirective, BaseTourProxyAnchor } from 'ngx-ui-tour-core';
export { StepDimensions } from 'ngx-ui-tour-core';

interface PrimeNgStepOption extends IStepOption {
    closeOnOutsideClick?: boolean;
}

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

declare class TourStepTemplateComponent extends TourHotkeyListenerComponent implements AfterViewInit {
    readonly popover: i0.Signal<Popover>;
    readonly stepTemplateContent: i0.Signal<TemplateRef<{
        step: PrimeNgStepOption;
    }>>;
    readonly stepTemplate: i0.InputSignal<TemplateRef<{
        step: PrimeNgStepOption;
    }>>;
    step: PrimeNgStepOption;
    protected tourService: PrimeNgTourService<PrimeNgStepOption>;
    private readonly tourStepTemplateService;
    ngAfterViewInit(): 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 TourAnchorPrimeNgDirective implements OnInit, OnDestroy, TourAnchorDirective {
    tourAnchor: string;
    isActive: i0.WritableSignal<boolean>;
    readonly element: ElementRef<any>;
    private readonly tourService;
    private readonly stepTemplateService;
    private popoverCloseSubscription?;
    ngOnInit(): void;
    ngOnDestroy(): void;
    showTourStep(step: PrimeNgStepOption): Promise<void>;
    hideTourStep(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TourAnchorPrimeNgDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TourAnchorPrimeNgDirective, "[tourAnchor]", never, { "tourAnchor": { "alias": "tourAnchor"; "required": true; }; }, {}, never, never, true, never>;
}

declare class TourProxyAnchorComponent extends BaseTourProxyAnchor {
    protected readonly anchorDirective: TourAnchorPrimeNgDirective;
    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 TourAnchorPrimeNgDirective; inputs: { "tourAnchor": "anchorId"; }; outputs: {}; }]>;
}

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

export { TourAnchorPrimeNgDirective, TourPrimeNgModule, TourProxyAnchorComponent, PrimeNgTourService as TourService, TourStepTemplateComponent };
export type { PrimeNgStepOption as IStepOption };
