import type { InjectionKey, PropType, Ref } from 'vue'; import type { DataTableItem } from '../types.js'; export declare const makeDataTableExpandProps: (defaults?: Defaults | undefined) => { expandOnClick: unknown extends Defaults["expandOnClick"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["expandOnClick"] ? boolean : boolean | Defaults["expandOnClick"]; }; showExpand: unknown extends Defaults["showExpand"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["showExpand"] ? boolean : boolean | Defaults["showExpand"]; }; expanded: unknown extends Defaults["expanded"] ? { type: PropType; default: () => never[]; } : Omit<{ type: PropType; default: () => never[]; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["expanded"] ? readonly string[] : readonly string[] | Defaults["expanded"]; }; }; export declare const VDataTableExpandedKey: InjectionKey<{ expand: (item: DataTableItem, value: boolean) => void; expanded: Ref>; expandOnClick: Ref; isExpanded: (item: DataTableItem) => boolean; toggleExpand: (item: DataTableItem) => void; }>; type ExpandProps = { expandOnClick: boolean; expanded: readonly string[]; 'onUpdate:expanded': ((value: any[]) => void) | undefined; }; export declare function provideExpanded(props: ExpandProps): { expand: (item: DataTableItem, value: boolean) => void; expanded: Ref, Set> & { readonly externalValue: readonly string[]; }; expandOnClick: Readonly>; isExpanded: (item: DataTableItem) => boolean; toggleExpand: (item: DataTableItem) => void; }; export declare function useExpanded(): { expand: (item: DataTableItem, value: boolean) => void; expanded: Ref>; expandOnClick: Ref; isExpanded: (item: DataTableItem) => boolean; toggleExpand: (item: DataTableItem) => void; };