interface TYFilterInputOption { name: string; value: any; key: string; type?: string; [key: string]: any; } interface InputOption { minValue: number; maxValue: number; } interface TYFilterListOption { name: string; value: any; key: string; type?: string; [key: string]: any; } interface Message { name: string; value: string; key: string; filterType: string; id: string; } interface KeyOptions { name: string; value: string; key: string; type: string; } interface FilterParams { [key: string]: string; } interface FilterParamsArray { [key: string]: Array; } interface TYFilterInput extends TYFilter { tags: TYFilterListOption[]; selectChange?: (e: TYFilterInputOption) => void; addTag?: (e: TYFilterInputOption) => void; inputFilterRef?: MutableRefObject; } interface TYFilterInputEvent { addTag: (newTag: TYFilterListOption[]) => void; removeTag: (newTag: TYFilterInputOption) => void; } interface TYFilterInputEdit { inputFocus: (newTag: TYFilterInputOption) => void; getFilterParams: (newTag: TYFilterListOption[], params) => void; setShowSelect; setOptionsList; emptyInput: () => void; } interface TYFilter { hiddenIcon?: boolean; defaultTags?: TYFilterListOption[]; structureContent?: ReactNode; multiple?: boolean; filterItem?: TYFilterInputOption; filterInputRef?: MutableRefObject; bindKey: string; bindLabel: string; bindValue: string; loading: boolean; onChange?: (e: TYFilterListOption[]) => void; getKeyOptions: (inputValue: string, next: (options: TYFilterListOption[]) => void) => void; getValueOptions: (keyValue: TYFilterInputOption, inputValue: string, next: (options) => void, tags?: TYFilterListOption[]) => void; }