'use client';

import { default as React } from 'react';
export interface ListboxItem {
    /** Unique identifier */
    key: string | number;
    /** Display label */
    label: string;
    /** Value for the item */
    value?: any;
    /** Description text */
    description?: string;
    /** Start content (icon, avatar) */
    startContent?: React.ReactNode;
    /** End content (icon, badge) */
    endContent?: React.ReactNode;
    /** Disabled state */
    isDisabled?: boolean;
    /** Custom class name */
    className?: string;
    /** Text value for search */
    textValue?: string;
}
export interface ListboxProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
    /** Listbox items */
    items?: ListboxItem[];
    /** Selected keys */
    selectedKeys?: Set<string | number> | "all";
    /** Default selected keys */
    defaultSelectedKeys?: Set<string | number> | "all";
    /** Disabled keys */
    disabledKeys?: Set<string | number>;
    /** Selection mode */
    selectionMode?: "none" | "single" | "multiple";
    /** Selection behavior */
    selectionBehavior?: "toggle" | "replace";
    /** Empty content */
    emptyContent?: React.ReactNode;
    /** Loading state */
    isLoading?: boolean;
    /** Loading content */
    loadingContent?: React.ReactNode;
    /** Listbox variant */
    variant?: "flat" | "bordered" | "light" | "solid";
    /** Listbox color */
    color?: "primary" | "secondary" | "success" | "warning" | "danger";
    /** Item height */
    itemHeight?: "sm" | "md" | "lg";
    /** Max height */
    maxHeight?: string | number;
    /** Hide selected icon */
    hideSelectedIcon?: boolean;
    /** Show dividers */
    showDividers?: boolean;
    /** Keyboard navigation */
    shouldFocusWrap?: boolean;
    /** Auto focus */
    autoFocus?: boolean;
    /** Custom class name */
    className?: string;
    /** Custom styles */
    css?: any;
    /** Selection change handler */
    onSelectionChange?: (keys: Set<string | number> | "all") => void;
    /** Item action handler */
    onAction?: (key: string | number) => void;
}
export interface ListboxItemProps extends React.HTMLAttributes<HTMLDivElement> {
    /** Item data */
    item: ListboxItem;
    /** Selected state */
    isSelected?: boolean;
    /** Focused state */
    isFocused?: boolean;
    /** Disabled state */
    isDisabled?: boolean;
    /** Selection mode */
    selectionMode?: "none" | "single" | "multiple";
    /** Hide selected icon */
    hideSelectedIcon?: boolean;
    /** Item height */
    itemHeight?: "sm" | "md" | "lg";
    /** Color theme */
    color?: "primary" | "secondary" | "success" | "warning" | "danger";
    /** Custom class name */
    className?: string;
    /** Custom styles */
    css?: any;
    /** Click handler */
    onPress?: () => void;
}
export declare const ListboxItem: React.FC<ListboxItemProps>;
export declare const Listbox: React.ForwardRefExoticComponent<ListboxProps & React.RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=listbox.d.ts.map