import { PropsWithChildren, ReactElement, ReactNode } from "react";
import { FlattenSimpleInterpolation } from "styled-components";
export declare type Origin = "top-left" | "top" | "top-right" | "right" | "bottom-right" | "bottom" | "bottom-left" | "left" | "center";
export declare type Direction = "top" | "right" | "bottom" | "left";
export declare type Flip = {
    x: boolean;
    y: boolean;
};
export declare type Position = [number, number];
export declare type Paddings = Record<Direction, keyof Pick<CSSStyleDeclaration, "paddingBottom" | "paddingTop" | "paddingLeft" | "paddingRight">>;
export interface PopoverPosition {
    anchorOriginPosition: Position;
    targetOriginPosition: Position;
    paddingSide: Direction | null;
}
export interface PopoverPropsDefault {
    anchorOrigin: Origin;
    targetOrigin: Origin;
    autoPosition: boolean;
    animateAppearance: boolean;
    animateX: boolean;
    animateY: boolean;
    fixedAnchor: boolean;
    closeOnScroll: boolean;
}
export interface PopoverProps extends Partial<PopoverPropsDefault>, PropsWithChildren {
    anchor: ReactElement | HTMLElement;
    open?: boolean;
    onRequestClose?: (e?: MouseEvent | TouchEvent) => void;
    className?: string;
    fixedAnchor?: boolean;
    closeOnScroll?: boolean;
    zIndex?: number;
    root?: HTMLElement | null;
    mixin?: FlattenSimpleInterpolation;
    children?: ReactNode;
    onShown?: VoidFunction;
}
export declare type AnchorProps = {
    withTime?: boolean;
    width?: string | number;
};
