import { GetLabelType } from '@m4l/core';
import { Formatters } from '@m4l/graphics';
import { FC } from 'react';
import { DataTypeFilerLabels, FilterField, FilterFieldApplied, FilterValue, InitialFilterApplied } from '../../types';
import { RHFormValues, ValidationSchema } from '../../../hook-form/RHFormProvider/types';
/**
 * Interface para crear los helpers de cada tipo de campo
 */
export interface IFieldType<T extends RHFormValues> {
    getComponent(): FC<{
        [key: string]: any;
    }>;
    getDefaultFilter(field: FilterField, fixed: boolean): FilterFieldApplied;
    getLabels(filter: FilterFieldApplied, getLabel: GetLabelType, formatters: Formatters, field: FilterField): DataTypeFilerLabels;
    getSchema(getLabel: GetLabelType, field?: FilterField): ValidationSchema<T>;
    getFormValue(field: FilterField, getLabel: GetLabelType, filterValue?: FilterValue): T;
    getFilterFromFormValue(formFilterValue: T): FilterValue;
    verifyFilter(filter: InitialFilterApplied, field?: FilterField): boolean;
}
//# sourceMappingURL=FieldTypeInterface.d.ts.map