import React from 'react'; import { IVariableTreeNode } from '@music163/tango-helpers'; import { ValueDefineProps, ValueDetailProps } from './value-detail'; type SelectNodeCallback = (data: IVariableTreeNode) => void; type DetailModeType = 'detail' | 'storeVariableDetail' | 'serviceDetail' | 'addVariable' | 'addStore' | 'addService'; interface IVariableTreeRenderDetailState { mode: DetailModeType; setMode: (mode: DetailModeType) => void; activeNode: IVariableTreeNode; clear: () => void; } export interface VariableTreeProps { defaultValueDetailMode?: ValueDetailProps['defaultMode']; dataSource: IVariableTreeNode[]; appContext?: object; serviceModules?: any[]; getPreviewValue?: (node: IVariableTreeNode) => unknown; getServiceData?: (serviceKey: string) => object; getServiceNames?: (moduleName: string) => string[]; getStoreNames?: () => string[]; onSelect?: SelectNodeCallback; onAddStoreVariable?: (storeName: string, data: any) => void; onUpdateStoreVariable?: ValueDefineProps['onSave']; onRemoveStoreVariable?: (variableKey: string) => void; onAddStore?: (newStoreName: string) => void; onAddService?: (data: object) => void; onUpdateService?: (data: object) => void; onRemoveService?: (variableKey: string) => void; onCopy?: (data: IVariableTreeNode) => void; onView?: SelectNodeCallback; height?: number | string; showViewButton?: boolean; /** * 自定义头部 */ renderHeaderExtra?: (props: VariableTreeProps, state: IVariableTreeRenderDetailState) => React.ReactNode; /** * 自定义变量详情渲染 * @param props * @param state * @returns */ renderDetail?: (props: VariableTreeProps, state: IVariableTreeRenderDetailState) => React.ReactNode; } export declare function VariableTree(props: VariableTreeProps): React.JSX.Element; export {};