import { type PropType } from "vue"; export type SelectableListProps = { /** Accessible name for the listbox (required for SR users). */ label?: string; /** References the id of an external visible label (alternative to `label`). */ labelledby?: string; /** * Allow more than one selected row. Adds aria-multiselectable and toggles * each row independently. Defaults to false (single-select). */ multiple?: boolean; /** * Selected value(s). Controlled when provided. For single-select pass a * string (or null); for multiple pass a string[]. When omitted the list is * uncontrolled and keeps its own internal selection. */ value?: string | string[] | null; /** * Fired with the new selection on every change. Receives a string|null for * single-select and a string[] for multiple. Required for the controlled * pattern; also fires for uncontrolled lists. */ onChange?: (value: string | string[] | null) => void; class?: string; }; /** * Accessible listbox that owns selection + a roving tabindex for its * {@link SelectableRow} children. Arrow / Home / End move focus (roving), * Space / Enter / click toggle the focused row. Single-select by default; * `multiple` toggles rows independently. Controlled via `value`/`onChange`, * otherwise it keeps its own internal selection. Pilots each child row through * provide/inject (role="option" + the computed tabindex / aria-selected). * Disabled rows are registered but skipped during keyboard navigation; if a * disabled row holds focus, focus transfers to the next enabled row. */ export declare const SelectableList: import("vue").DefineComponent; default: undefined; }; onChange: { type: PropType<(value: string | string[] | null) => void>; default: undefined; }; class: { type: StringConstructor; default: undefined; }; }>, () => import("vue").VNode, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { change: (_value: string | string[] | null) => true; }, string, import("vue").PublicProps, Readonly; default: undefined; }; onChange: { type: PropType<(value: string | string[] | null) => void>; default: undefined; }; class: { type: StringConstructor; default: undefined; }; }>> & Readonly<{ onChange?: ((_value: string | string[] | null) => any) | undefined; }>, { multiple: boolean; class: string; onChange: (value: string | string[] | null) => void; label: string; value: string | string[] | null; labelledby: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; //# sourceMappingURL=SelectableList.d.ts.map