import React, { CSSProperties } from 'react';
import { Placement } from '@popperjs/core';
export type DropdownProps = {
    /**
     * the item to be toggled to open the dropdown
     */
    Toggle: JSX.Element | HTMLDivElement | React.ReactNode;
    /**
     * popup element attributes
     */
    attributes?: Record<string, string>;
    /**
     * elements in popup
     */
    children?: React.ReactNode;
    /**
     * class name
     */
    className?: string;
    /**
     * whether or not a selection should close the dropdown.
     */
    closeOnSelect?: boolean;
    customOffSet?: [number, number];
    exceptSelectorPrefix?: string;
    /**
     * Close on click outslide
     */
    isCloseOnOutsideClick?: boolean;
    /** Whether the dropdown is fully disabled or not. */
    isDisabled?: boolean;
    /**
     * manually trigger the dropdown from outside of the component.
     */
    isManuallyTriggered?: boolean;
    /**
     * open without Trigger
     *
     */
    isOpenManual?: boolean;
    onClose?(): void;
    onOpen?(): void;
    onSelect?(value: any, toggleMenu?: any): void;
    /**
     * popup placement can be one of
     * VariationPlacement ("top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end")
     * AutoPlacement ("auto" | "auto-start" | "auto-end")
     * BasePlacement ("top" | "bottom" | "right" | "left")
     */
    placement?: Placement;
    /**
     * popup portal element by default document.body
     */
    portalElement?: HTMLElement;
    /**
     * whether to show the arrow or not.
     */
    showArrow?: boolean;
    /**
     * css styles
     */
    style?: CSSProperties;
    /**
     * trigger on ref instead of actual component
     */
    triggerIsRef?: boolean;
};
export declare const DropdownContext: React.Context<{
    onSelect: DropdownProps['onSelect'];
}>;
export declare const useDropdown: () => {
    onSelect: DropdownProps['onSelect'];
};
