import React, { ComponentType } from 'react';
export declare type ListItemProps<Option> = {
    value: Option;
    displayOption: (opt: Option) => string;
    light: boolean;
    disabled: boolean;
};
export declare type DropdownSelectProps<Option> = {
    className?: string;
    displayOption?: string | ((opt: Option) => string);
    disabled?: boolean;
    onClick: (e: React.MouseEvent) => void;
    inputTheme?: string;
    error?: boolean;
    size?: string;
    value: Option;
    placeholder?: string;
    erasable?: boolean;
    showArrow?: boolean;
    onErase?: (e: React.MouseEvent) => void;
    showDropdown: (e: React.MouseEvent) => void;
    DropDownLineItemRenderComponent?: ComponentType<ListItemProps<Option>>;
};
export declare const StyledDropdownSelect: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
    ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
}>, {
    className?: string | undefined;
}>, {
    size: DropdownSelectProps<any>['size'];
    inputTheme: DropdownSelectProps<any>['inputTheme'];
}>>;
export declare const DropdownSelectValue: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
    inputTheme: DropdownSelectProps<any>['inputTheme'];
    hasPlaceholder: boolean;
}>>;
declare function DropdownSelect<Option>({ className, displayOption, disabled, onClick, inputTheme, size, value, placeholder, erasable, showArrow, onErase, showDropdown, DropDownLineItemRenderComponent }: DropdownSelectProps<Option>): JSX.Element;
export default DropdownSelect;
