/** Native suggestion data accepted by every framework adapter. */ export interface NativeListOption { value: string; label?: string | undefined; disabled?: boolean | undefined; } /** Grouped suggestions flattened for browser-owned datalist rendering. */ export interface NativeListGroup { label: string; options: readonly NativeListOption[]; } /** Committed-value detail shared by native autocomplete adapters. */ export interface NativeListChange { value: string; previousValue: string | null; reason: 'keyboard' | 'pointer' | 'programmatic'; created: boolean; } /** Independent committed and draft values for native autocomplete. */ export interface NativeListProps { value?: string | undefined; defaultValue?: string | undefined; inputValue?: string | undefined; defaultInputValue?: string | undefined; options?: readonly (NativeListOption | NativeListGroup)[] | undefined; allowCustomValue?: boolean | undefined; disabled?: boolean | undefined; readOnly?: boolean | undefined; onValueChange?: ((detail: NativeListChange) => void) | undefined; onInputValueChange?: ((value: string) => void) | undefined; onReset?: (() => void) | undefined; onStateChange?: (() => void) | undefined; } /** Flatten groups while omitting disabled browser suggestions. */ export declare function nativeListOptions(options: NativeListProps['options']): NativeListOption[]; /** Native list state with independent controlled values and reset semantics. */ export declare class NativeListController { private props; private committed; private text; private initialValue; private initialText; private input; private cleanup; constructor(props: NativeListProps); /** Current committed answer, honoring an explicitly controlled value. */ get value(): string; /** Current visible draft, honoring independently controlled draft text. */ get draft(): string; /** Update reactive configuration without emitting user change notifications. */ update(props: NativeListProps): void; /** Synchronize the native input after controlled reactive updates. */ sync(): void; /** Accept typing and immediately commit valid native form answers. */ change(text: string): void; private setDraft; /** Commit native draft or restore the last accepted answer. */ commit(text?: string, reason?: NativeListChange['reason']): void; /** Apply a framework form-model write without emitting user events. */ write(value: string): void; /** Reset uncontrolled values while preserving both controlled channels. */ reset(): void; /** Attach form lifecycle listeners that follow native reassociation. */ connect(input: HTMLInputElement): void; /** Release form listeners when an input leaves its document. */ disconnect(): void; }