import React from 'react'; import { IDropdownOption } from '../types'; export interface IDropdownItem { /** Object of active options with `value` as the `key` and `boolean` as value. Great for passing a list of active elements */ activeOptions?: { [key: string]: boolean; }; /** className for container */ className?: string; /** Optional Id */ id?: string; /** Optional index from top. This helps us with the focusOption if there is a parent container controlling keyboard controls */ index?: number; /** True or false, if there is only one active option available */ isActive?: boolean; /** If true, will highlight selected item instead of adding checked icon */ highlightActive?: boolean; /** If item is manually being focused on. If null, then we aren't using this method. */ isFocused?: boolean; /** If it is expected that item will have description, it should be taller */ isTall?: boolean; /** Is disabled */ isDisabled?: boolean; /** This is so dumb, this should not be called IMPORTANT, it should be a color theme. */ isImportant?: boolean; /** Mandatory children */ option: IDropdownOption; /** On mouse move event, passes event and index */ onMouseMove?: (e: React.MouseEvent, index: number | undefined, option: IDropdownOption | undefined) => void; /** When clicked on option */ onClick: (option: IDropdownOption, e: React.MouseEvent | undefined) => void; /** Optional custom renderer, this isFocused parameter is same as the isFocused props upper */ renderItem?: (option: IDropdownOption, index?: number, isFocused?: boolean) => React.ReactNode; /** Optional trailing element custom renderer , most likely an icon */ renderTrailing?: (option: IDropdownOption, isActive: boolean) => React.ReactNode | void; } /** * The most basic dropdown item template. It contains an icon, and possible checkmark for selected ones. */ export declare const DropdownItem: React.FC;