import * as React from 'react'; import { PopupPlacement } from '../ui/popups'; import './Dropdown.css'; interface OnClickCallback { (event?: React.SyntheticEvent): void; } interface RenderProps { closeDropdown: () => void; onToggleClick: OnClickCallback; open: boolean; } interface Props { children: ((renderProps: RenderProps) => JSX.Element) | React.ReactElement<{ onClick: OnClickCallback; }>; className?: string; closeOnClick?: boolean; closeOnClickOutside?: boolean; onOpen?: () => void; overlay: React.ReactNode; overlayPlacement?: PopupPlacement; noOverlayPadding?: boolean; tagName?: string; } interface State { open: boolean; } export default class Dropdown extends React.PureComponent { state: State; componentDidUpdate(_: Props, prevState: State): void; closeDropdown: () => void; handleToggleClick: (event?: React.SyntheticEvent | undefined) => void; render(): React.ReactElement<{ className: string; }, string | ((props: any) => React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>; } interface OverlayProps { className?: string; children: React.ReactNode; noPadding?: boolean; placement?: PopupPlacement; } export declare class DropdownOverlay extends React.Component { get placement(): PopupPlacement.Bottom | PopupPlacement; renderPopup: (leftFix?: number | undefined, topFix?: number | undefined) => JSX.Element; render(): JSX.Element; } export {};