import { DetailField, DetailFieldProps, DetailFieldConfig, IDetailField } from '../common'; import InterfaceHelper, { InterfaceConfig } from '../../../util/interface'; export interface EnumDetailConfig extends DetailFieldConfig { type: 'detail_enum'; multiple: boolean | ArrayMultipleConfig | SplitMultipleConfig; options: ManualOptionsConfig | InterfaceOptionsConfig; } interface ArrayMultipleConfig { type: 'array'; } interface SplitMultipleConfig { type: 'split'; split: string; } interface ManualOptionsConfig { from: 'manual'; data: { key: string | number | boolean; label: string; [extra: string]: any; }[]; getKey?: string; getValue?: string; } export interface InterfaceOptionsConfig { from: 'interface'; interface?: InterfaceConfig; format?: InterfaceOptionsListConfig | InterfaceOptionKVConfig; } export interface InterfaceOptionKVConfig { type: 'kv'; } export interface InterfaceOptionsListConfig { type: 'list'; keyField: string; labelField: string; } export interface IEnumProps { value?: string | string[]; } export default class EnumDetail extends DetailField implements IDetailField { interfaceHelper: InterfaceHelper; reset: () => Promise; state: { value: string; }; constructor(props: DetailFieldProps); renderComponent: (props: IEnumProps) => JSX.Element; componentDidMount(): void; getValue: () => Promise; render: () => JSX.Element; } export {};