import { AfterViewInit, ChangeDetectorRef, ElementRef, Renderer2, TemplateRef } from '@angular/core';
import { CdkTrapFocus } from '@angular/cdk/a11y';
import { ConnectionPositionPair } from '@angular/cdk/overlay';
import { Subject } from 'rxjs';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
import * as i0 from "@angular/core";
/**
 * A component used to enforce a certain layout for the popover.
 * ```html
 * <fd-popover>
 *     <fd-popover-control>Control Element</fd-popover-control>
 *     <fd-popover-body>Popover Body</fd-popover-body>
 * </fd-popover>
 * ```
 */
export declare class PopoverBodyComponent implements AfterViewInit {
    readonly _elementRef: ElementRef;
    private _changeDetectorRef;
    private readonly _renderer;
    readonly _contentDensityObserver: ContentDensityObserver;
    /** Minimum width of the popover body element. */
    minWidth: Nullable<string>;
    /** Maximum width of the popover body element. */
    maxWidth: Nullable<string>;
    /** Minimum height of the popover body element. */
    minHeight: Nullable<string>;
    /** Maximum height of the popover body element. */
    maxHeight: Nullable<string>;
    /** @hidden */
    _cdkTrapFocus: CdkTrapFocus;
    /** @hidden */
    _scrollbar: ScrollbarDirective;
    /** Whether to wrap content with fd-scrollbar directive. */
    _disableScrollbar: boolean;
    /** Whether the popover should have an arrow. */
    _noArrow: boolean;
    /** Whether the popover container needs an extra class for styling. */
    _additionalBodyClass: Nullable<string>;
    /** Whether the popover should be focusTrapped. */
    _focusTrapped: boolean;
    /**
     * Whether the popover should automatically move focus into the trapped region upon
     * initialization and return focus to the previous activeElement upon destruction.
     */
    _focusAutoCapture: boolean;
    /** @hidden Property bind to popover's body. */
    _popoverBodyWidth: number;
    /** @hidden Property bind to popover's body. */
    _popoverBodyMinWidth: number;
    /** @hidden Property bind to popover's body. */
    _maxWidth: Nullable<number>;
    /** @hidden Property bind to popover's body. */
    _closeOnEscapeKey: boolean;
    /** @hidden Aria role for the popover body. */
    _bodyRole: Nullable<string>;
    /** @hidden Aria role for the popover body. */
    _bodyId: Nullable<string>;
    /** Classes added to arrow element. */
    _arrowClasses: string;
    /** @hidden text rendered inside popover's body. */
    text: Nullable<string>;
    /** @hidden template rendered inside popover's body. */
    _templateToDisplay: TemplateRef<any>;
    /** @hidden Whether the popover body is resizable. */
    _resizable: boolean;
    /** @hidden */
    _resizeHandleLocation: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
    /** Close event from popover body */
    onClose: Subject<void>;
    /** @hidden */
    private _bodyComponentClasses;
    /** @hidden */
    constructor(_elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, _renderer: Renderer2, _contentDensityObserver: ContentDensityObserver);
    /** Handler escape keydown */
    bodyKeyupHandler(event: KeyboardEvent): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /** @hidden */
    _setBodyComponentClasses(classes: string | null): void;
    /** @hidden */
    _setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void;
    /** @hidden */
    detectChanges(): void;
    /** @hidden */
    _focusFirstTabbableElement(forced?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverBodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PopoverBodyComponent, "fd-popover-body", never, { "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; }, {}, never, ["[fd-popover-body-header]", "[fd-popover-body-subheader]", "*", "[fd-popover-body-footer]"], true, never>;
}
