import type { PropType } from 'vue'; import type { InternalItem } from './filter.js'; import type { SelectItemKey, ValueComparator } from '../util/index.js'; export interface ListItem extends InternalItem { title: string; props: { [key: string]: any; title: string; value: any; }; children: ListItem[] | undefined; type: string; } export interface ItemProps { items: any[]; itemTitle: SelectItemKey; itemValue: SelectItemKey; itemChildren: SelectItemKey; itemProps: SelectItemKey; itemType: SelectItemKey; returnObject: boolean; valueComparator: ValueComparator | undefined; } export declare const makeItemsProps: (defaults?: Defaults | undefined) => { items: unknown extends Defaults["items"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["items"] ? any[] : any[] | Defaults["items"]; }; itemTitle: unknown extends Defaults["itemTitle"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemTitle"] ? SelectItemKey : Defaults["itemTitle"] | NonNullable; }; itemValue: unknown extends Defaults["itemValue"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemValue"] ? SelectItemKey : Defaults["itemValue"] | NonNullable; }; itemChildren: unknown extends Defaults["itemChildren"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemChildren"] ? SelectItemKey : Defaults["itemChildren"] | NonNullable; }; itemProps: unknown extends Defaults["itemProps"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemProps"] ? SelectItemKey : Defaults["itemProps"] | NonNullable; }; itemType: unknown extends Defaults["itemType"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["itemType"] ? SelectItemKey : Defaults["itemType"] | NonNullable; }; returnObject: unknown extends Defaults["returnObject"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["returnObject"] ? boolean : boolean | Defaults["returnObject"]; }; valueComparator: unknown extends Defaults["valueComparator"] ? PropType : { type: PropType; default: unknown extends Defaults["valueComparator"] ? ValueComparator : ValueComparator | Defaults["valueComparator"]; }; }; export declare function transformItem(props: Pick, item: any): ListItem; export declare namespace transformItem { var neededProps: readonly ["itemTitle", "itemValue", "itemChildren", "itemProps", "itemType"]; } export declare function transformItems(props: Pick, items: ItemProps['items']): ListItem[]; export declare function useItems(props: ItemProps): { items: import("vue").ComputedRef[]>; transformIn: (value: any[]) => ListItem[]; transformOut: (value: ListItem[]) => any[]; };