import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, Injector, OnChanges, OnDestroy, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
import { DynamicComponentService } from '@fundamental-ngx/cdk/utils';
import { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';
import { BasePopoverClass } from './base/base-popover.class';
import { PopoverBodyDirective } from './popover-body.directive';
import { PopoverBodyComponent } from './popover-body/popover-body.component';
import { PopoverControlComponent } from './popover-control/popover-control.component';
import { PopoverService } from './popover-service/popover.service';
import * as i0 from "@angular/core";
export declare const SELECT_CLASS_NAMES: {
    selectControl: string;
};
/**
 * The popover is a wrapping component that accepts a *control* as well as a *body*.
 * The control is what will trigger the opening of the actual popover, which is called the body.
 * By default, popovers are triggered by click. This can be customized through the *triggers* input.
 */
export declare class PopoverComponent extends BasePopoverClass implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges {
    private readonly _popoverService;
    private readonly _cdr;
    private readonly _rendered;
    private readonly _viewContainerRef;
    private readonly _injector;
    private readonly _dynamicComponentService;
    /** Tooltip for popover */
    title: string;
    /** Reference to popover trigger element */
    set trigger(trigger: ElementRef | HTMLElement);
    get trigger(): ElementRef | HTMLElement;
    /** Whether position shouldn't change, when popover approach the corner of page */
    fixedPosition: boolean;
    /** Id of the popover. If none is provided, one will be generated. */
    id: string;
    /** Whether the popover component should be displayed in mobile mode. */
    mobile: boolean;
    /** Config for the popover in mobile mode */
    mobileConfig: MobileModeConfig;
    /**
     * Whether the popover should prevent page scrolling when space key is pressed.
     **/
    preventSpaceKeyScroll: boolean;
    /** @hidden */
    templateRef: TemplateRef<any>;
    /** @hidden */
    container: ViewContainerRef;
    /** @hidden */
    triggerOrigin: CdkOverlayOrigin;
    /** @hidden */
    popoverBody: PopoverBodyComponent;
    /** @hidden */
    popoverBodyDirective: PopoverBodyDirective;
    /** @hidden */
    popoverControl: PopoverControlComponent;
    /** @hidden - template for Dialog body content */
    popoverBodyContentTemplate: TemplateRef<any>;
    /** @hidden - template for Dialog footer content */
    popoverFooterContentTemplate: TemplateRef<any>;
    /** @hidden */
    private get _triggerElement();
    /** @hidden */
    private _trigger;
    /** @hidden */
    private _clickEventListener;
    /** @hidden */
    private _mobileModeComponentRef;
    /** @hidden */
    constructor(_popoverService: PopoverService, _cdr: ChangeDetectorRef, _rendered: Renderer2, _viewContainerRef: ViewContainerRef, _injector: Injector, _dynamicComponentService: DynamicComponentService);
    /** Handler escape keydown */
    escapeKeydownHandler(event: KeyboardEvent): void;
    /** @hidden */
    onKeyDown(event: KeyboardEvent): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    ngAfterContentInit(): void;
    /** @hidden */
    ngOnChanges(changes: SimpleChanges): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** Toggles menu open/close state */
    toggle(): void;
    /** Opens the popover. */
    open(): void;
    /** Closes the popover. */
    close(focusActiveElement?: boolean): void;
    /** Temporary sets the ignoring of the event triggers. */
    setIgnoreTriggers(ignore: boolean): void;
    /**
     * Method called to change position of popover,
     * recommended to be used only when popover is opened, otherwise change position or cdkPlacement
     */
    applyNewPosition(positions: ConnectedPosition[]): void;
    /** Method called to refresh position of opened popover */
    refreshPosition(): void;
    /** Handler for alt + arrow down keydown */
    triggerKeyDownHandler(event: KeyboardEvent): void;
    /** @hidden Select and instantiate popover view mode */
    private _setupView;
    /**
     * Depending on a used popover body type, returns a popover body content
     **/
    private _getPopoverBodyContent;
    /** @hidden Open Popover in mobile mode */
    private _setupMobileMode;
    /** @hidden - Listen on popover trigger ref clicks */
    private _listenOnTriggerRefClicks;
    /**
     * @hidden
     * This is going to be removed in feature, on dialog and dynamic service component refactor
     */
    private _destroyEventListeners;
    /** @hidden */
    private _destroyMobileComponent;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, [null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "fd-popover", never, { "title": { "alias": "title"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "fixedPosition": { "alias": "fixedPosition"; "required": false; }; "id": { "alias": "id"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "mobileConfig": { "alias": "mobileConfig"; "required": false; }; "preventSpaceKeyScroll": { "alias": "preventSpaceKeyScroll"; "required": false; }; }, {}, ["popoverBody", "popoverBodyDirective", "popoverControl", "popoverBodyContentTemplate", "popoverFooterContentTemplate"], ["fd-popover-control, [fdPopoverControl]", "fd-popover-body", "*"], true, never>;
}
