import { IEntityContainer } from '../../../services/api/common';
import { IDatahubDataEntity } from './models';
import { ENTITY_ACTIONS, FIELDS_LOAD_MODE } from './constants';

export declare const useDatahubDataEntityStore: <T extends IDatahubDataEntity = IDatahubDataEntity>() => import('pinia').Store<"datahubDataEntityStore", Pick<{
    loadMode: import('vue').Ref<FIELDS_LOAD_MODE, FIELDS_LOAD_MODE>;
    entityController: import('vue').Ref<string, string>;
    entityActions: import('vue').Ref<{
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }, Record<ENTITY_ACTIONS, import('./constants').IEntityAction> | {
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }>;
    entity: import('vue').Ref<T, T>;
    isFrozen: import('vue').Ref<boolean, boolean>;
    isEditing: import('vue').Ref<boolean, boolean>;
    isLoading: import('vue').Ref<boolean, boolean>;
    isLocked: import('vue').ComputedRef<boolean>;
    isValid: import('vue').ComputedRef<boolean>;
    isValidEntity: import('vue').Ref<boolean, boolean>;
    isProcessing: import('vue').Ref<boolean, boolean>;
    isSubmitting: import('vue').Ref<boolean, boolean>;
    variantKey: import('vue').ComputedRef<string>;
    masterEntityId: import('vue').ComputedRef<any>;
    langAndScopes: import('vue').Ref<IEntityContainer, IEntityContainer>;
    changedEntityFields: import('vue').Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
    startEditing: () => Promise<void>;
    languagesScopesApi: () => Promise<IEntityContainer>;
    hasEntityAction: (method: ENTITY_ACTIONS) => boolean;
    prepareApiCall: <T_1, B = unknown>(method: ENTITY_ACTIONS) => (body?: B) => Promise<T_1>;
    apiCall: <T_1>(method: ENTITY_ACTIONS, body: unknown) => Promise<T_1>;
    saveEntity: (requiredFields?: string[]) => Promise<boolean>;
    fetchEntity: (entityId: string | number, freezeEntityIfPossible?: boolean) => Promise<void>;
    thawEntity: () => Promise<unknown>;
    updateEntityField: (fieldName: string) => void;
    setEntityValidate: (valid: boolean) => void;
    clearChangedEntityFields: () => void;
    $reset: () => void;
}, "isFrozen" | "isLoading" | "isEditing" | "isSubmitting" | "entity" | "loadMode" | "entityController" | "entityActions" | "isValidEntity" | "isProcessing" | "langAndScopes" | "changedEntityFields">, Pick<{
    loadMode: import('vue').Ref<FIELDS_LOAD_MODE, FIELDS_LOAD_MODE>;
    entityController: import('vue').Ref<string, string>;
    entityActions: import('vue').Ref<{
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }, Record<ENTITY_ACTIONS, import('./constants').IEntityAction> | {
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }>;
    entity: import('vue').Ref<T, T>;
    isFrozen: import('vue').Ref<boolean, boolean>;
    isEditing: import('vue').Ref<boolean, boolean>;
    isLoading: import('vue').Ref<boolean, boolean>;
    isLocked: import('vue').ComputedRef<boolean>;
    isValid: import('vue').ComputedRef<boolean>;
    isValidEntity: import('vue').Ref<boolean, boolean>;
    isProcessing: import('vue').Ref<boolean, boolean>;
    isSubmitting: import('vue').Ref<boolean, boolean>;
    variantKey: import('vue').ComputedRef<string>;
    masterEntityId: import('vue').ComputedRef<any>;
    langAndScopes: import('vue').Ref<IEntityContainer, IEntityContainer>;
    changedEntityFields: import('vue').Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
    startEditing: () => Promise<void>;
    languagesScopesApi: () => Promise<IEntityContainer>;
    hasEntityAction: (method: ENTITY_ACTIONS) => boolean;
    prepareApiCall: <T_1, B = unknown>(method: ENTITY_ACTIONS) => (body?: B) => Promise<T_1>;
    apiCall: <T_1>(method: ENTITY_ACTIONS, body: unknown) => Promise<T_1>;
    saveEntity: (requiredFields?: string[]) => Promise<boolean>;
    fetchEntity: (entityId: string | number, freezeEntityIfPossible?: boolean) => Promise<void>;
    thawEntity: () => Promise<unknown>;
    updateEntityField: (fieldName: string) => void;
    setEntityValidate: (valid: boolean) => void;
    clearChangedEntityFields: () => void;
    $reset: () => void;
}, "isValid" | "isLocked" | "variantKey" | "masterEntityId">, Pick<{
    loadMode: import('vue').Ref<FIELDS_LOAD_MODE, FIELDS_LOAD_MODE>;
    entityController: import('vue').Ref<string, string>;
    entityActions: import('vue').Ref<{
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }, Record<ENTITY_ACTIONS, import('./constants').IEntityAction> | {
        0: import('./constants').IEntityAction;
        1: import('./constants').IEntityAction;
        2: import('./constants').IEntityAction;
        3: import('./constants').IEntityAction;
        4: import('./constants').IEntityAction;
        5: import('./constants').IEntityAction;
        6: import('./constants').IEntityAction;
        7: import('./constants').IEntityAction;
        8: import('./constants').IEntityAction;
    }>;
    entity: import('vue').Ref<T, T>;
    isFrozen: import('vue').Ref<boolean, boolean>;
    isEditing: import('vue').Ref<boolean, boolean>;
    isLoading: import('vue').Ref<boolean, boolean>;
    isLocked: import('vue').ComputedRef<boolean>;
    isValid: import('vue').ComputedRef<boolean>;
    isValidEntity: import('vue').Ref<boolean, boolean>;
    isProcessing: import('vue').Ref<boolean, boolean>;
    isSubmitting: import('vue').Ref<boolean, boolean>;
    variantKey: import('vue').ComputedRef<string>;
    masterEntityId: import('vue').ComputedRef<any>;
    langAndScopes: import('vue').Ref<IEntityContainer, IEntityContainer>;
    changedEntityFields: import('vue').Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
    startEditing: () => Promise<void>;
    languagesScopesApi: () => Promise<IEntityContainer>;
    hasEntityAction: (method: ENTITY_ACTIONS) => boolean;
    prepareApiCall: <T_1, B = unknown>(method: ENTITY_ACTIONS) => (body?: B) => Promise<T_1>;
    apiCall: <T_1>(method: ENTITY_ACTIONS, body: unknown) => Promise<T_1>;
    saveEntity: (requiredFields?: string[]) => Promise<boolean>;
    fetchEntity: (entityId: string | number, freezeEntityIfPossible?: boolean) => Promise<void>;
    thawEntity: () => Promise<unknown>;
    updateEntityField: (fieldName: string) => void;
    setEntityValidate: (valid: boolean) => void;
    clearChangedEntityFields: () => void;
    $reset: () => void;
}, "$reset" | "apiCall" | "startEditing" | "languagesScopesApi" | "hasEntityAction" | "prepareApiCall" | "saveEntity" | "fetchEntity" | "thawEntity" | "updateEntityField" | "setEntityValidate" | "clearChangedEntityFields">>;
