import { Field, FieldConfig, FieldError, IField, FieldInterface } from '../common'; import moment from 'moment'; export interface DatetimeRangeFieldConfig extends FieldConfig, FieldInterface { type: 'datetimeRange'; regExp?: { expression?: string; message?: string; }; format?: string; submitFormat?: string; submitFormatMode?: 'comma' | 'array'; placeholder?: string; fieldRange?: string; mode?: 'time' | 'date' | 'datetime' | 'week' | 'month' | 'quarter' | 'year'; } export interface IDatetimeRangeField { value?: moment.Moment[] | undefined[]; format?: string; disabled?: boolean; readonly?: boolean; mode?: 'time' | 'date' | 'datetime' | 'week' | 'month' | 'quarter' | 'year'; placeholder?: string; onChange: (value: moment.Moment[] | undefined[]) => Promise; } export default class DatetimeRangeField extends Field implements IField { validate: (value: string | string[] | number[] | undefined[] | undefined) => Promise; renderComponent: (props: IDatetimeRangeField) => JSX.Element; decode: (value: string | string[] | number[] | undefined[] | undefined) => moment.Moment[] | undefined[]; encode: (value: moment.Moment[] | undefined[]) => string | string[] | undefined; render: () => JSX.Element; }