import { type HTMLAttributes, type KeyboardEvent, type ReactNode } from 'react';
interface ListContextValue {
selection: 'none' | 'single' | 'multiple';
selectedValues: Set;
focusedValue: string | null;
disabled: boolean;
enabledItemValues: string[];
onItemSelect: (value: string) => void;
onItemFocus: (value: string) => void;
onItemKeyDown: (e: KeyboardEvent, value: string) => void;
registerItemRef: (value: string, el: HTMLElement | null) => void;
divider: 'spaced' | 'divided' | 'bordered';
}
/** Curated imperative handle for agent / external automation. */
export interface ListHandle {
getSelection: () => string[];
setSelection: (ids: string[]) => void;
clearSelection: () => void;
}
export interface ListProps extends HTMLAttributes {
as?: 'ul' | 'ol';
start?: number;
divider?: 'spaced' | 'divided' | 'bordered';
density?: 'compact' | 'default' | 'relaxed';
selection?: 'none' | 'single' | 'multiple';
value?: string | string[];
defaultValue?: string | string[];
onValueChange?: (value: string | string[]) => void;
disabled?: boolean;
children: ReactNode;
className?: string;
}
export interface ListItemProps extends Omit, 'title'> {
value?: string;
leading?: ReactNode;
title: ReactNode;
description?: ReactNode;
trailing?: ReactNode;
lineClamp?: number;
disabled?: boolean;
className?: string;
}
export declare const List: import("react").ForwardRefExoticComponent> & {
Root: import("react").ForwardRefExoticComponent>;
Item: import("react").ForwardRefExoticComponent>;
};
export type { ListContextValue };
//# sourceMappingURL=list.d.ts.map