import { ElementRef, Renderer2, ChangeDetectorRef, EventEmitter, AfterViewInit, TemplateRef, OnDestroy, ViewContainerRef, Injector, NgZone } from '@angular/core';
import * as i0 from "@angular/core";
export declare type Direction = 'top' | 'top-left' | 'top-right' | 'right' | 'right-top' | 'right-bottom' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'left-top' | 'left-bottom';
export declare type Size = 'small' | 'medium' | 'large';
export declare class PopoverComponent implements AfterViewInit {
    element: ElementRef;
    renderer: Renderer2;
    changeDetector: ChangeDetectorRef;
    header: string;
    footer: string;
    hasEdit: boolean;
    hasDelete: boolean;
    infoTitle: string;
    infoCreatedBy: string;
    infoModifiedBy: string;
    infoDate: string;
    templateType: 'defaultContent' | 'infoContent' | 'downloadContent' | 'datePickerContent';
    templateTypeData: any;
    isInteractive: boolean | string;
    set theme(theme: any);
    set tooltip(isTooltip: any);
    set nubbin(direction: Direction);
    set size(size: Size);
    afterViewInit: EventEmitter<any>;
    onInteraction: EventEmitter<boolean>;
    templateEventEmiter: EventEmitter<any>;
    uid: string;
    get labelledby(): string;
    _nubbin: Direction;
    _theme: string;
    _size: Size;
    _isTooltip: boolean;
    constructor(element: ElementRef, renderer: Renderer2, changeDetector: ChangeDetectorRef);
    ngAfterViewInit(): void;
    interactiveHandler(evt: Event, isEnter: boolean): void;
    /**
     * Events on specific "downloadContent" <ng-template /> Template:
     */
    downloadContentDownloadFile(objFile: any): void;
    downloadContentDeleteFile(objFile: any): void;
    downloadContentEditFile(objFile: any): void;
    datePickerContentChange(selectedDate: Date): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "uno-popover", never, { "header": "header"; "footer": "footer"; "hasEdit": "hasEdit"; "hasDelete": "hasDelete"; "infoTitle": "infoTitle"; "infoCreatedBy": "infoCreatedBy"; "infoModifiedBy": "infoModifiedBy"; "infoDate": "infoDate"; "templateType": "templateType"; "templateTypeData": "templateTypeData"; "isInteractive": "isInteractive"; "theme": "theme"; "tooltip": "tooltip"; }, { "afterViewInit": "afterViewInit"; "onInteraction": "onInteraction"; "templateEventEmiter": "templateEventEmiter"; }, never, ["*"]>;
}
export declare class PopoverTriggerDirective implements OnDestroy {
    private element;
    private viewContainer;
    private injector;
    private ngZone;
    private renderer;
    unoPopover: string | TemplateRef<any>;
    unoPopoverHeader: string;
    unoPopoverFooter: string;
    unoPopoverTemplate: 'defaultContent' | 'infoContent' | 'downloadContent';
    unoPopoverTemplateData: any;
    hasEdit: boolean;
    hasDelete: boolean;
    infoTitle: string;
    infoCreatedBy: string;
    infoModifiedBy: string;
    infoDate: string;
    set unoPopoverPlacement(_placement: Direction);
    set unoPopoverTheme(theme: string);
    set unoPopoverNubbin(_nubbin: Direction);
    set unoPopoverSize(_size: Size);
    unoPopoverTooltip: string | boolean;
    set unoPopoverDelay(delay: any | any[]);
    set unoPopoverInteractive(interactive: boolean | string);
    get unoPopoverInteractive(): boolean | string;
    set unoPopoverOpen(open: boolean);
    unoPopoverToggled: EventEmitter<boolean>;
    unoPopoverTemplateEvent: EventEmitter<any>;
    popover: PopoverComponent;
    private componentRef;
    private viewRef;
    private placement;
    private theme;
    private nubbin;
    private size;
    private tether;
    private openDelay;
    private closeDelay;
    private toggleTimeout;
    private interactive;
    private template$;
    private interactive$;
    constructor(element: ElementRef, viewContainer: ViewContainerRef, injector: Injector, ngZone: NgZone, renderer: Renderer2);
    open(delay?: number): void;
    close(delay?: number): void;
    position(async?: boolean): void;
    ngOnDestroy(): void;
    private toggle;
    private setTether;
    private setPopover;
    private create;
    private getProjectableNodes;
    private destroy;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverTriggerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[uno-popover-trigger]", ["unoPopoverTrigger"], { "unoPopover": "unoPopover"; "unoPopoverHeader": "unoPopoverHeader"; "unoPopoverFooter": "unoPopoverFooter"; "unoPopoverTemplate": "unoPopoverTemplate"; "unoPopoverTemplateData": "unoPopoverTemplateData"; "hasEdit": "hasEdit"; "hasDelete": "hasDelete"; "infoTitle": "infoTitle"; "infoCreatedBy": "infoCreatedBy"; "infoModifiedBy": "infoModifiedBy"; "infoDate": "infoDate"; "unoPopoverPlacement": "unoPopoverPlacement"; "unoPopoverTheme": "unoPopoverTheme"; "unoPopoverNubbin": "unoPopoverNubbin"; "unoPopoverSize": "unoPopoverSize"; "unoPopoverTooltip": "unoPopoverTooltip"; "unoPopoverDelay": "unoPopoverDelay"; "unoPopoverInteractive": "unoPopoverInteractive"; "unoPopoverOpen": "unoPopoverOpen"; }, { "unoPopoverToggled": "unoPopoverToggled"; "unoPopoverTemplateEvent": "unoPopoverTemplateEvent"; }, never>;
}
export declare class PopoverClickBehaviorDirective {
    private trigger;
    triggerElement: HTMLElement;
    isInfoPopoverOpened: boolean;
    constructor(trigger: PopoverTriggerDirective);
    onClick(evt: any): void;
    closePopoverTrigger(evt: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverClickBehaviorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverClickBehaviorDirective, "[uno-popover-click-behavior]", never, {}, {}, never>;
}
export declare class PopoverBehaviorDirective {
    private trigger;
    tabindex: number;
    constructor(trigger: PopoverTriggerDirective);
    onMouseOver(): void;
    onMouseOut(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverBehaviorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverBehaviorDirective, "[unoPopoverBehavior]", never, {}, {}, never>;
}
