import { ReactElement } from 'react';
import { FieldComponentProps } from '@cezembre/forms';
export interface SelectOptionComponentProps<V = unknown> {
    value?: V;
    active?: boolean;
}
export interface SelectOption<V = unknown> {
    value: V;
    label?: string | number | boolean;
    element?: ReactElement<SelectOptionComponentProps<V>> | null;
    component?: (props: SelectOptionComponentProps<V>) => ReactElement | null;
}
export type SelectShape = 'square' | 'round' | 'borderless';
export type SelectType = 'dropdown' | 'flat';
export type SelectTheme = 'default' | 'electric-blue';
export interface SelectProps<V = unknown, FV extends V | V[] = V> extends FieldComponentProps<FV> {
    label?: string;
    options?: SelectOption<V>[];
    optionComponent?: (props: SelectOptionComponentProps<V>) => ReactElement | null;
    canReset?: boolean;
    shape?: SelectShape;
    type?: SelectType;
    theme?: SelectTheme;
    instructions?: ReactElement | string;
    fullWidth?: boolean;
    placeholder?: string;
    onSearch?: (search?: string) => unknown;
    multiple?: boolean;
    optionsPlural?: string;
}
export declare function Select<V = unknown, FV extends V | V[] = V>({ value, error, warning, isActive, onFocus, onBlur, name, onChange, label, options, optionComponent, canReset, instructions, shape, type, fullWidth, placeholder, onSearch, multiple, optionsPlural, theme, }: SelectProps<V, FV>): ReactElement;
