import React, { ComponentProps } from 'react';
import { Select as JoySelect } from '@mui/joy';
import { SelectValue } from '@mui/base';
declare const Option: import("framer-motion").CustomDomComponent<{
    color?: import("@mui/types").OverridableStringUnion<import("@mui/joy").ColorPaletteProp, import("@mui/joy").OptionPropsColorOverrides> | undefined;
    children?: React.ReactNode;
    disabled?: boolean | undefined;
    label?: string | React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
    variant?: import("@mui/types").OverridableStringUnion<import("@mui/joy").VariantProp, import("@mui/joy").OptionPropsVariantOverrides> | undefined;
    value: any;
    sx?: import("@mui/joy/styles/types").SxProps | undefined;
} & import("@mui/joy").OptionSlotsAndSlotProps & Omit<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & {
    ref?: ((instance: HTMLLIElement | null) => void) | React.RefObject<HTMLLIElement> | null | undefined;
}, "label" | "children" | "color" | "variant" | "sx" | "disabled" | "value" | keyof import("@mui/joy").OptionSlotsAndSlotProps>>;
export { Option };
type OptionType = {
    label: string;
    value: string | number;
    disabled?: boolean;
    secondaryText?: string;
} | string | number;
type InferOptionValue<OptionValue> = OptionValue extends {
    value: infer V;
} ? V : OptionValue;
interface CeedSelectProps<OptionValue extends OptionType, Multiple extends boolean = false> extends Omit<ComponentProps<typeof JoySelect<OptionValue, any, Multiple>>, 'value' | 'onChange' | 'multiple'> {
    options: OptionValue[];
    label?: string;
    helperText?: string;
    error?: boolean;
    value?: SelectValue<InferOptionValue<OptionValue>, Multiple>;
    onChange?: (event: Omit<React.SyntheticEvent<HTMLElement>, 'target'> & {
        target: {
            name?: string;
            value: InferOptionValue<OptionValue>;
        };
    }, newValue: InferOptionValue<OptionValue>) => void;
    multiple?: Multiple;
}
declare function Select<OptionValue extends OptionType, Multiple extends boolean = false>(props: CeedSelectProps<OptionValue, Multiple>): React.JSX.Element;
declare namespace Select {
    var displayName: string;
}
export { Select };
