import { ComputedRef, Ref, UnwrapRef } from 'vue'; import { Reactive } from '../common/common'; import { ObjectConfigs } from '../common/configs'; type Objects = Record; interface ObjectStateDatumBase { id: string; selected: boolean; hovered: boolean; selectable: ComputedRef; zIndex: ComputedRef; } type ObjectState = UnwrapRef; type PartiallyPartial = Pick & Partial>; type NewStateDatum = PartiallyPartial; export declare function useObjectState>(objects: Ref>, config: ObjectConfigs, selected: Reactive>, hovered: Reactive>, createState: (obj: Ref>, id: string, state: NewStateDatum) => void, terminateState?: (id: string, state: ObjectState) => void, entriesForZOrder?: () => E[]): { states: Record>; zOrderedList: ComputedRef; }; export {};