import { DataUnit, DataUnitAction, DUActionInterceptor } from '@sankhyalabs/core';
import { IInvalidField } from "./interfaces";
import { IRecordValidator } from "../../utils/form/interfaces";
import { FormMetadata } from "./FormMetadata";
export default class DataBinder implements DUActionInterceptor {
  private _uuid;
  private _dataUnit;
  private _fields;
  private _formMetadata;
  private _recordValidatorProcessor;
  constructor(dataUnit: DataUnit);
  get dataBinderId(): string;
  private setContextDataBinder;
  private applyDefaultValues;
  bind(fields: Array<HTMLElement>, currentContextName: string, formMetadata: FormMetadata, recordsValidator: IRecordValidator): void;
  getFormRequiredFields(): string[];
  private disconnectDataUnit;
  onDisconnectedCallback(): void;
  private getCurrentRecordId;
  markInvalid(field: IInvalidField): void;
  setFocus(fieldName: string): void;
  private clearInvalid;
  private clearFieldError;
  private updateFieldValue;
  private hasMultipleValuesBetweenRecords;
  validate(): Promise<void>;
  static validateByDataunit(dataUnit: DataUnit): Promise<boolean>;
  static getDataBindersByDataUnit(dataUnit: DataUnit): Array<DataBinder>;
  private updateErrorMessage;
  private getErrorMessage;
  private updateBind;
  private changeStarted;
  private cancelWaitingChange;
  private setFieldValue;
  private bindSearchOptionsLoader;
  private applyEzUploadContext;
  private onDataUnitEvent;
  private updateAllFieldsValues;
  interceptAction(action: DataUnitAction): DataUnitAction | Promise<DataUnitAction>;
  private getDefaultValues;
}
