import * as react from 'react';
import { ReactNode } from 'react';
import * as RadixSelect from '@radix-ui/react-select';
import { Direction } from '@radix-ui/react-select';
import { ComponentPropsWithoutRef, Primitive } from '@radix-ui/react-primitive';

interface SelectProps {
    autoComplete?: string;
    buttonProps?: ComponentPropsWithoutRef<typeof Primitive.button>;
    children?: react.ReactNode;
    className?: string;
    defaultOpen?: boolean;
    defaultValue?: string;
    dir?: Direction;
    disabled?: boolean;
    disablePortal?: boolean;
    error?: boolean;
    fullWidth?: boolean;
    infoText?: ReactNode;
    label: string;
    name?: string;
    onOpenChange?(open: boolean): void;
    onValueChange?(value: string): void;
    open?: boolean;
    required?: boolean;
    selectedLabel?: string | react.ReactNode;
    startAdornment?: ReactNode;
    value?: string;
    warning?: boolean;
}
interface SelectClasses {
    disabled: string;
    endAdornment: string;
    error: string;
    fullWidth: string;
    infoText: string;
    inner: string;
    label: string;
    root: string;
    startAdornment: string;
    value: string;
    warning: string;
    wrapper: string;
}

declare const selectClasses: SelectClasses;

declare const _default: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLButtonElement>> & {
    Item: react.ForwardRefExoticComponent<RadixSelect.SelectItemProps & react.RefAttributes<HTMLDivElement>>;
};

export { SelectProps as S, _default as _, SelectClasses as a, selectClasses as s };
