import { DismissableLayer } from "@loke/ui/dismissable-layer";
import { FocusScope } from "@loke/ui/focus-scope";
import * as PopperPrimitive from "@loke/ui/popper";
import { Portal as PortalPrimitive } from "@loke/ui/portal";
import { Primitive } from "@loke/ui/primitive";
import { type ComponentPropsWithoutRef, type FC, type ReactNode } from "react";
type Direction = "ltr" | "rtl";
declare const createSelectScope: import("@loke/ui/context").CreateScope;
interface SelectSharedProps {
    autoComplete?: string;
    children?: ReactNode;
    defaultOpen?: boolean;
    dir?: Direction;
    disabled?: boolean;
    form?: string;
    name?: string;
    onOpenChange?(open: boolean): void;
    open?: boolean;
    required?: boolean;
}
type SelectProps = SelectSharedProps & {
    value?: string;
    defaultValue?: string;
    onValueChange?(value: string): void;
};
declare const Select: FC<SelectProps>;
type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
interface SelectTriggerProps extends PrimitiveButtonProps {
}
declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
type PrimitiveSpanProps = ComponentPropsWithoutRef<typeof Primitive.span>;
interface SelectValueProps extends Omit<PrimitiveSpanProps, "placeholder"> {
    placeholder?: ReactNode;
}
declare const SelectValue: import("react").ForwardRefExoticComponent<SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
interface SelectIconProps extends PrimitiveSpanProps {
}
declare const SelectIcon: import("react").ForwardRefExoticComponent<SelectIconProps & import("react").RefAttributes<HTMLSpanElement>>;
type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;
interface SelectPortalProps {
    children?: ReactNode;
    /**
     * Specify a container element to portal the content into.
     */
    container?: PortalProps["container"];
}
declare const SelectPortal: FC<SelectPortalProps>;
interface SelectContentProps extends SelectContentImplProps {
}
declare const SelectContent: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLDivElement>>;
type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;
type FocusScopeProps = ComponentPropsWithoutRef<typeof FocusScope>;
type SelectPopperPrivateProps = {
    onPlaced?: PopperContentProps["onPlaced"];
};
interface SelectContentImplProps extends Omit<SelectPopperPositionProps, keyof SelectPopperPrivateProps>, Omit<SelectItemAlignedPositionProps, keyof SelectPopperPrivateProps> {
    /**
     * Event handler called when auto-focusing on close.
     * Can be prevented.
     */
    onCloseAutoFocus?: FocusScopeProps["onUnmountAutoFocus"];
    /**
     * Event handler called when the escape key is down.
     * Can be prevented.
     */
    onEscapeKeyDown?: DismissableLayerProps["onEscapeKeyDown"];
    /**
     * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.
     * Can be prevented.
     */
    onPointerDownOutside?: DismissableLayerProps["onPointerDownOutside"];
    position?: "item-aligned" | "popper";
}
interface SelectItemAlignedPositionProps extends PrimitiveDivProps, SelectPopperPrivateProps {
}
type PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;
interface SelectPopperPositionProps extends PopperContentProps, SelectPopperPrivateProps {
}
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
interface SelectViewportProps extends PrimitiveDivProps {
    nonce?: string;
}
declare const SelectViewport: import("react").ForwardRefExoticComponent<SelectViewportProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectGroupProps extends PrimitiveDivProps {
}
declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectLabelProps extends PrimitiveDivProps {
}
declare const SelectLabel: import("react").ForwardRefExoticComponent<SelectLabelProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectItemProps extends PrimitiveDivProps {
    disabled?: boolean;
    textValue?: string;
    value: string;
}
declare const SelectItem: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectItemTextProps extends PrimitiveSpanProps {
}
declare const SelectItemText: import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>;
interface SelectItemIndicatorProps extends PrimitiveSpanProps {
}
declare const SelectItemIndicator: import("react").ForwardRefExoticComponent<SelectItemIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>;
interface SelectScrollUpButtonProps extends Omit<SelectScrollButtonImplProps, "onAutoScroll"> {
}
declare const SelectScrollUpButton: import("react").ForwardRefExoticComponent<SelectScrollUpButtonProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectScrollDownButtonProps extends Omit<SelectScrollButtonImplProps, "onAutoScroll"> {
}
declare const SelectScrollDownButton: import("react").ForwardRefExoticComponent<SelectScrollDownButtonProps & import("react").RefAttributes<HTMLDivElement>>;
interface SelectScrollButtonImplProps extends PrimitiveDivProps {
    onAutoScroll(): void;
}
interface SelectSeparatorProps extends PrimitiveDivProps {
}
declare const SelectSeparator: import("react").ForwardRefExoticComponent<SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
type PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;
interface SelectArrowProps extends PopperArrowProps {
}
declare const SelectArrow: import("react").ForwardRefExoticComponent<SelectArrowProps & import("react").RefAttributes<SVGSVGElement>>;
declare const Root: FC<SelectProps>;
declare const Trigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
declare const Value: import("react").ForwardRefExoticComponent<SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
declare const Icon: import("react").ForwardRefExoticComponent<SelectIconProps & import("react").RefAttributes<HTMLSpanElement>>;
declare const Portal: FC<SelectPortalProps>;
declare const Content: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Viewport: import("react").ForwardRefExoticComponent<SelectViewportProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Group: import("react").ForwardRefExoticComponent<SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Label: import("react").ForwardRefExoticComponent<SelectLabelProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Item: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLDivElement>>;
declare const ItemText: import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>;
declare const ItemIndicator: import("react").ForwardRefExoticComponent<SelectItemIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>;
declare const ScrollUpButton: import("react").ForwardRefExoticComponent<SelectScrollUpButtonProps & import("react").RefAttributes<HTMLDivElement>>;
declare const ScrollDownButton: import("react").ForwardRefExoticComponent<SelectScrollDownButtonProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Separator: import("react").ForwardRefExoticComponent<SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
declare const Arrow: import("react").ForwardRefExoticComponent<SelectArrowProps & import("react").RefAttributes<SVGSVGElement>>;
export { createSelectScope, Select, SelectTrigger, SelectValue, SelectIcon, SelectPortal, SelectContent, SelectViewport, SelectGroup, SelectLabel, SelectItem, SelectItemText, SelectItemIndicator, SelectScrollUpButton, SelectScrollDownButton, SelectSeparator, SelectArrow, Root, Trigger, Value, Icon, Portal, Content, Viewport, Group, Label, Item, ItemText, ItemIndicator, ScrollUpButton, ScrollDownButton, Separator, Arrow, };
export type { SelectProps, SelectTriggerProps, SelectValueProps, SelectIconProps, SelectPortalProps, SelectContentProps, SelectViewportProps, SelectGroupProps, SelectLabelProps, SelectItemProps, SelectItemTextProps, SelectItemIndicatorProps, SelectScrollUpButtonProps, SelectScrollDownButtonProps, SelectSeparatorProps, SelectArrowProps, };
