import { JSXElementConstructor, ReactElement } from 'react';
import { FieldComponentProps } from '@cezembre/forms';
export interface SelectOption<V = unknown> {
    value: V;
    element?: ReactElement | string | number;
}
export interface SelectOptionProps<V = unknown> {
    option?: SelectOption<V>;
    DefaultComponent?: JSXElementConstructor<{
        value: V;
    }>;
    placeholder?: string;
}
export type SelectTheme = 'default' | 'borderless';
export type SelectType = 'dropdown' | 'flat';
export interface SelectProps<V = unknown> extends FieldComponentProps<V | undefined> {
    label?: string;
    options?: SelectOption<V>[];
    DefaultComponent?: JSXElementConstructor<{
        value: V;
    }>;
    canReset?: boolean;
    theme?: SelectTheme;
    type?: SelectType;
    instructions?: ReactElement | string;
    fullWidth?: boolean;
    onSearch?(search?: string): unknown;
}
export declare function Select<V = unknown>({ value, error, warning, isActive, onFocus, onBlur, name, onChange, label, options, DefaultComponent, canReset, instructions, theme, type, fullWidth, onSearch, }: SelectProps<V>): ReactElement;
