import { DataUnit } from '@sankhyalabs/core';
import { IFormCardConfig, IFormConfig } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces';
import { IUserConfig } from '../../lib/http/data-fetcher/fetchers/form-config-fetcher';
export declare class SnkFormConfigManager {
  private _config;
  private _onConfigChange;
  isLoaded: boolean;
  private _configName;
  private _formConfigFetcher;
  private _resourceID;
  private _dataUnit;
  constructor(configName: string, resourceID: string, onConfigChange?: (config: IFormConfig) => void, dataUnit?: DataUnit);
  addFormLegacyConfig(legacyConfigName: string): void;
  loadConfig(): Promise<IFormConfig>;
  getEmptyConfig(): IFormConfig;
  saveConfig(config: IFormConfig): Promise<IFormConfig>;
  saveCardState(cardId: string, cardConfig: IFormCardConfig, propertyChanged: string): Promise<Map<string, IFormCardConfig>>;
  private updateFixSequence;
  private hasConfig;
  getFieldsList(descriptionFilter?: string, forceEmptyConfig?: boolean): Array<{
    label: string;
    name: string;
    readOnly?: boolean;
  }>;
  private isFieldVisible;
  private getFormConfig;
  setConfig(config: IFormConfig): void;
  getConfig(dataUnit: DataUnit, ignoreReadOnlyFormFields?: boolean): IFormConfig;
  private getFormConfigFetcher;
  fetchUserAvailableConfigs(): Promise<Array<IUserConfig>>;
  fetchLegacyConfig(): Promise<IFormConfig>;
  fetchDefaultConfig(): Promise<IFormConfig>;
  private parseObjectList;
  private buildFormMetadataUITabs;
}
