import * as React from "react";
import * as SelectPrimitive from "@radix-ui/react-select";
import { DropdownMenu } from "./dropdown-menu";
export interface SelectOption {
    value: string;
    label: string;
}
export interface SingleSelectProps {
    mode?: "single";
    options?: SelectOption[];
    value?: string;
    onValueChange?: (value: string) => void;
    placeholder?: string;
    className?: string;
    children?: React.ReactNode;
    disabled?: boolean;
    maxDisplay?: number;
}
export interface MultiSelectProps {
    mode: "multiple";
    options: SelectOption[];
    value?: string[];
    onValueChange?: (value: string[]) => void;
    placeholder?: string;
    className?: string;
    children?: React.ReactNode;
    disabled?: boolean;
    maxDisplay?: number;
}
export type SelectProps = SingleSelectProps | MultiSelectProps;
declare function Select({ mode, options, value, onValueChange, placeholder, className, children, disabled, maxDisplay, ...props }: SelectProps & React.ComponentProps<typeof SelectPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
    size?: "sm" | "default";
}): import("react/jsx-runtime").JSX.Element;
declare function SelectContent({ className, children, position, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): import("react/jsx-runtime").JSX.Element;
declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): import("react/jsx-runtime").JSX.Element;
export declare function MultiSelect({ options, value, onValueChange, placeholder, className, maxDisplay, ...props }: {
    options: SelectOption[];
    value?: string[];
    onValueChange?: (value: string[]) => void;
    placeholder?: string;
    className?: string;
    maxDisplay?: number;
} & Omit<React.ComponentProps<typeof DropdownMenu>, "children">): import("react/jsx-runtime").JSX.Element;
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
//# sourceMappingURL=select.d.ts.map