import { EventEmitter } from '../../../../stencil-public-runtime';
import { IFieldConfig } from '@sankhyalabs/ezui/src/utils/interfaces/IFieldConfig';
import { DataUnit, FieldDescriptor, UserInterface } from '@sankhyalabs/core';
import { SnkMessageBuilder } from '../../../../lib/message/SnkMessageBuilder';
export declare class FieldConfig {
  private _popoupElement;
  private _application;
  private fieldLabel;
  private fieldLabelErrorMessage;
  private fieldDefaultValue;
  private fieldCleanOnCopy;
  private fieldRequired;
  private fieldReadOnly;
  private _defaultType;
  dataUnit?: DataUnit;
  fieldConfig: IFieldConfig;
  fieldDescriptor: FieldDescriptor;
  messagesBuilder?: SnkMessageBuilder;
  fieldConfigChanged: EventEmitter<IFieldConfig>;
  observeFieldLabel(): void;
  show(_anchorElement: HTMLElement): Promise<void>;
  private validateFieldLabel;
  private getMessage;
  private isAllowDefault;
  private enabledValueDefault;
  private getDefaultType;
  private emitFieldChanged;
  private handleLabelChanged;
  private handleDefaultTypeChanged;
  private handleDefaultValueChanged;
  private onChangeDefaultValue;
  private handleClearDuplicateChanged;
  private handleRequiredChanged;
  private handleReadOnlyChanged;
  private loadDefaultValue;
  private buildOptions;
  private renderDefaultValueEditor;
  private buildFieldDefaultValueElement;
  private buildInputDefault;
  private getConditionalAttributes;
  private onSearchDefaultValue;
  private initializeValues;
  private handleApplyChanges;
  private applyErrorMessage;
  private handleDiscardChanges;
  componentWillLoad(): void;
  render(): any;
}
export interface IConfigFieldBuilder {
  name: string;
  label: string;
  value: any;
  enabled: boolean;
  userInterface: UserInterface;
  required?: boolean;
}
