/// import * as VIM from 'vim-webgl-viewer'; export type Entry = { key: string | undefined; label: string | undefined; value: string | undefined; }; export type Group = { key: string | undefined; title: string | undefined; content: Entry[]; }; export type Section = { key: string | undefined; title: string; content: Group[]; }; export type Data = { header: Entry[] | undefined; body: Section[] | undefined; }; /** * Data customization function for the BIM info panel. * @data The data to customize. * @source The VIM.Object or VIM.Vim from which the data was pulled. */ export type DataCustomization = (data: Data, source: VIM.Vim | VIM.Object3D) => Promise; /** * Rendering customization function for the BIM info panel. * @data The data to render. * @standard The standard rendering function for the data. */ export type DataRender = ((props: { data: T; standard: () => JSX.Element; }) => JSX.Element) | undefined; /** * Reference object for customizing the rendering of the BIM info panel. */ export type BimInfoPanelRef = { /** * A function that customizes the data before it is rendered in the BIM info panel. */ onData: DataCustomization; /** * A function that customizes the rendering of the header of the BIM info panel. */ onRenderHeader: DataRender; /** * A function that customizes the rendering of each header entry in the BIM info panel. */ onRenderHeaderEntry: DataRender; /** * A function that customizes the rendering of each entry value of the header in the BIM info panel. */ onRenderHeaderEntryValue: DataRender; /** * A function that customizes the rendering for the body section of the BIM info panel. */ onRenderBody: DataRender; /** * A function that customizes the rendering of each section of the body in the BIM info panel. */ onRenderBodySection: DataRender
; /** * A function that customizes the rendering of each group of the body in the BIM info panel. */ onRenderBodyGroup: DataRender; /** * A function that customizes the rendering for each entry of the body in the BIM info panel. */ onRenderBodyEntry: DataRender; /** * A function that customizes the rendering of each value for a single body entry in the info panel. */ onRenderBodyEntryValue: DataRender; }; export declare function createBimInfoState(): BimInfoPanelRef;