import { Field, FieldConfig, FieldError, IField } from '../common'; import { InterfaceHelper } from '../../..'; import { InterfaceConfig } from '../../../util/interface'; export declare type UploadFieldConfig = UploadFieldConfigImage | UploadFieldConfigFile; export interface UploadFieldConfigBasic extends FieldConfig { type: 'upload'; interface: InterfaceConfig; requireField: string; responseField: string; extraResponseField: Array<{ from: string; to: string; }>; } export interface UploadFieldConfigImage extends UploadFieldConfigBasic { mode: 'image'; imagePrefix: string; sizeCheck?: { height?: number; width?: number; maxSize?: number; sizeUnit?: 'B' | 'K' | 'M' | 'G' | 'T'; }; } export interface UploadFieldConfigFile extends UploadFieldConfigBasic { mode: 'file'; sizeCheck?: { maxSize?: number; sizeUnit?: 'B' | 'K' | 'M' | 'G' | 'T'; }; } export interface IUploadField { mode: 'image' | 'file'; value?: string; onChange: (file: any) => Promise; onCancel: () => Promise; readonly?: any; disabled?: any; } export default class UploadField extends Field implements IField { interfaceHelper: InterfaceHelper; errors: FieldError[]; reset: () => Promise; validate: (value: any) => Promise; beforeUpload: (file: any) => Promise; renderComponent: (props: IUploadField) => JSX.Element; render: () => JSX.Element; }