import { GetLabelType } from '@m4l/core';
import { Formatters } from '@m4l/graphics';
import { DataTypeFilerLabels, FilterField, FilterFieldApplied, FilterValue, FilterValueSelectAsync, FormFilterValueSelectAsync, OperandSelectAsync, InitialFilterApplied } from '../../../types';
import { IFieldType } from '../FieldTypeInterface';
import { SelectAsyncFilter } from './index';
import { ValidationSchema } from '../../../../hook-form/RHFormProvider/types';
/**
 * Filtra los valores de operandArray para que solo tengan valores validos
 * @param operandsArray valores del OperandsArray
 * @param field Propiedades del field
 * @returns FormOperandSelect[] operandArray filtrado con valores validados
 */
export declare function filterValidOperandsArraySelectAsync(operandsArray: OperandSelectAsync[] | OperandSelectAsync, field: FilterField): any[];
/**
 * SelectAsyncFilterHelpers es una clase que implementa la interfaz IFieldType
 */
export declare class SelectAsyncFilterHelpers implements IFieldType<FormFilterValueSelectAsync> {
    getComponent(): typeof SelectAsyncFilter;
    /**
     * getDefaultFilter devuelve un filtro por defecto para un campo de selección asíncrona.
     */
    getDefaultFilter(fieldSelectAsync: FilterField, fixed: boolean): FilterFieldApplied;
    /**
     * getFormValue convierte un valor de filtro en un valor de formulario.
     */
    getFormValue(fieldSelectAsync: FilterField, getLabel: GetLabelType, filterValueSelectAsync?: FilterValue): FormFilterValueSelectAsync;
    /**
     * getFilterFromFormValue convierte un valor de formulario en un valor de filtro.
     */
    getFilterFromFormValue(formFilterValue: FormFilterValueSelectAsync): FilterValueSelectAsync;
    /**
     * getLabels devuelve las etiquetas para el campo, operador y operandos.
     */
    getLabels(filter: FilterFieldApplied, getLabel: GetLabelType, _formatters: Formatters, fieldSelectAsync: FilterField): DataTypeFilerLabels;
    /**
     * getschema devuelve el esquema de validación de Yup para el filtro.
     */
    getSchema(getLabel: GetLabelType, _field?: FilterField): ValidationSchema<FormFilterValueSelectAsync>;
    /**
     * verifyFilter verifica si el filtro es válido.
     */
    verifyFilter(filter: InitialFilterApplied, fieldSelectAsync?: FilterField): boolean;
}
//# sourceMappingURL=helpers.d.ts.map