import { CSSProperties } from 'react';
import { JSX } from 'react';
import { JSX as JSX_2 } from 'react/jsx-runtime';
import { ReactNode } from 'react';

declare interface DropdownBase {
    arrow?: boolean;
    show?: boolean;
    style?: CSSProperties;
    className?: string;
    contentClass?: string;
    direction?: DropdownDirection;
    width?: DropdownWidth;
    mode?: DropdownMode;
    offset?: number;
    onFirstOpen?: () => void;
    onOpen?: () => void;
    onClose?: () => void;
    intersect?: boolean;
}

declare type DropdownDirection = 'down' | 'down-left' | 'down-right' | 'left' | 'left-top' | 'left-bottom' | 'up' | 'up-left' | 'up-right' | 'right' | 'right-top' | 'right-bottom';

declare type DropdownMode = 'hover' | 'click' | 'toggle';

declare type DropdownProps = DropdownBase & {
    target: JSX.Element;
    children: ReactNode;
};

declare type DropdownWidth = 'full' | 'auto' | 'target';

export declare const ToolTip: (props: ToolTipProps) => JSX_2.Element;

export declare type ToolTipProps = Omit<DropdownProps, 'contentClass' | 'mode' | 'arrow' | 'offset'>;

export { }
