import { DataUnit } from '@sankhyalabs/core';
import { IFieldConfig } from '@sankhyalabs/ezui/src/utils/interfaces/IFieldConfig';
import { EventEmitter } from '../../../stencil-public-runtime';
import { SnkMessageBuilder } from '../../../lib/message/SnkMessageBuilder';
import { IGroupConfig, IGuideConfig } from '../FormConfigHelper';
export declare class FieldLayoutComponent {
  private readonly ID_GROUPS;
  private readonly ID_FIELDS;
  private readonly reservedGuideNames;
  private groupsListMemory;
  private groupsRefList;
  private _refTextEdit;
  private el;
  private isEditGuideNameActive;
  selectedGuide: IGuideConfig;
  groupsList: IGroupConfig[];
  guideNames: string[];
  dataUnit?: DataUnit;
  isEditingGuideName: EventEmitter<boolean>;
  isEditingGroupName: EventEmitter<boolean>;
  messagesBuilder: SnkMessageBuilder;
  onMessagesBuilderChange(): void;
  handleFieldConfigChanged({ detail: updatedField }: CustomEvent<IFieldConfig>): void;
  layoutChanged: EventEmitter<IGroupConfig[]>;
  setFieldListAsAvailable: EventEmitter<IFieldConfig[]>;
  guideRenamed: EventEmitter<string>;
  observeSelectedGuide(): void;
  observeGroupList(newValue: IGroupConfig[]): void;
  observeIsEditGuideNameActive(newValue: boolean): void;
  addFieldToLayout(incomingField: IFieldConfig): Promise<void>;
  private getFixedFieldsGroup;
  private getMessage;
  private handleAddGroup;
  private buildNewGroupName;
  private makeDynamicFieldsContainersDraggable;
  private getFieldsContainerId;
  private handleSortGroups;
  private handleFieldsChanged;
  private applyGroupUpdate;
  private handleFieldsOnGroupUpdate;
  private updateGroupList;
  private replaceGroup;
  private makeGroupsDraggable;
  private makeFieldContainerDraggable;
  private getContainerElement;
  private handleSetFieldAsAvailable;
  private removeGroup;
  private handleRenameGroup;
  private canSaveGroup;
  private buildDuplicatedGroupNameContent;
  private buildDuplicatedTabNameContent;
  private buildReservedTabNameContent;
  private renderFields;
  private renderDraggableGroups;
  private renderFixedFields;
  private handleRenameGuide;
  private cancelEditGuideName;
  private startGuideNameEdition;
  private getTextEditStyle;
  private renderGuideName;
  private renderEditGuideNameButton;
  private setCustomCSSProperties;
  componentDidRender(): void;
  render(): any;
}
