import { IFormCardConfig, IFormConfig, ITabConfig } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces';
import { ResourceFetcher } from './resource-fetcher';
export declare class FormConfigFetcher extends ResourceFetcher {
  private queryConfig;
  constructor();
  private buildTemplatesConfig;
  loadFormConfig(formName: string, resourceID: string): Promise<IFormConfig>;
  getTabName(tab: string | ITabConfig): string;
  saveCardState(cardsState: Map<string, IFormCardConfig>, formName: string, resourceID: string): Promise<Map<string, IFormCardConfig>>;
  saveConfig(config: IFormConfig, formName: string, resourceID: string): Promise<IFormConfig>;
  fetchUserAvailableConfigs(formName: string, resourceID: string): Promise<Array<IUserConfig>>;
  fetchLegacyConfig(formName: string, resourceID: string): Promise<IFormConfig>;
  fetchDefaultConfig(formName: string, resourceID: string): Promise<IFormConfig>;
  private getPath;
  fetchLegacyConfigurableForm(configName: string): Promise<IFormConfig>;
  fetchSimpleFormConfig(configName: string): Promise<Array<string>>;
  saveSimpleFormConfig(configName: string, fieldList: string[]): Promise<void>;
  private processConfig;
  private getResponseAsArray;
  private buildSaveSimpleFormConfigPayload;
  restoreFormConfig(configName: string): Promise<void>;
  private buildLegacyConfigurableForm;
  fetchLayoutFormConfig(configName: string): Promise<IConfLayout>;
  saveLayoutFormConfig(configName: string, config: IConfLayout): Promise<IFormConfig>;
}
export declare enum UserConfigType {
  USER = "USER",
  DEFAULT = "DEFAULT",
  SHARED = "SHARED"
}
export interface IUserConfig {
  name: string;
  origin: UserConfigType;
  key: string;
  userID: number;
}
export interface IConfLayout {
  config: number;
  newConfig: boolean;
}
