import { IFieldEnum, IForm } from './index'; export type IOptionManagerOptionsArray = {[key: string]: any}[]; export type IOptionManagerOptionsFunction = (field: IFieldEnum, form: IForm) => IOptionManagerOptionsArray | Promise; export type IOptionManagerOptionsAction = IOptionManagerOptionsFunction | string; export type IOptionManagerOptions = { nameProperty?: string; valueProperty?: string; action: IOptionManagerOptionsAction; path?: string; watch?: string[]; defaultIndex?: number; } | string | IOptionManagerOptionsArray; export interface IOptionManagerParams { options?: IOptionManagerOptions } export interface IOptionManager { nameProperty: string; valueProperty: string; action: IOptionManagerOptionsAction; path: string; watch: string[]; defaultIndex?: number; initialOptions: IOptionManagerOptionsArray; initialize: (params: IOptionManagerParams) => Promise; getOptions: () => Promise; reset: () => void; }