import { deepEqual } from "../util/index.js"; import type { PropType } from 'vue'; import type { InternalItem } from "./filter.js"; import type { SelectItemKey } 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: typeof deepEqual | undefined; } export declare const makeItemsProps: (defaults?: Defaults | undefined) => { items: unknown extends Defaults["items"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "type" | "default"> & { 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; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["itemTitle"] ? SelectItemKey : NonNullable | Defaults["itemTitle"]; }; itemValue: unknown extends Defaults["itemValue"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["itemValue"] ? SelectItemKey : NonNullable | Defaults["itemValue"]; }; itemChildren: unknown extends Defaults["itemChildren"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["itemChildren"] ? SelectItemKey : NonNullable | Defaults["itemChildren"]; }; itemProps: unknown extends Defaults["itemProps"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["itemProps"] ? SelectItemKey : NonNullable | Defaults["itemProps"]; }; itemType: unknown extends Defaults["itemType"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["itemType"] ? SelectItemKey : NonNullable | Defaults["itemType"]; }; 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"] ? typeof deepEqual : typeof deepEqual | 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[]; };