import { MuiEvent } from '@mui/x-internals/types'; import { TreeViewItemId } from "../../models/index.js"; interface TreeViewEventLookup { /** * Fired before an item is expanded or collapsed. */ beforeItemToggleExpansion: { parameters: { isExpansionPrevented: boolean; shouldBeExpanded: boolean; itemId: TreeViewItemId; }; event: React.SyntheticEvent | null; }; } export type TreeViewEvents = keyof TreeViewEventLookup; export type TreeViewEventListener = (params: TreeViewEventParameters, event: TreeViewEventLookup[E] extends { event: any; } ? MuiEvent : MuiEvent<{}>) => void; export type TreeViewEventParameters = TreeViewEventLookup[E] extends { parameters: infer P; } ? P : undefined; export type TreeViewEventEvent = TreeViewEventLookup[E] extends { event: infer EV; } ? EV : undefined; export {};