import { IApiPayload, IApiSuccess, IDataTableQuery, IDataFetcherResponse } from '../../../../../_common';
import { IColumnDefinitionContainer, IListOfLanguagesScopesAndFields, IDataTableQueryWithSerializeOptionals } from '../../common';
import { ITenantAttributeSetMap } from '../Attributes';
import { ITenantEntityType, ITenantAttributeSet, IAddAttributeRequest, IAttributeSetsForHeritage, IUpdateAttributeSetsRequest, IAttributeSetsDataFetcherResponse } from './AttributeSets.models';

export declare const DATA_HUB_ATTRIBUTE_SETS_API_BASE = "Actindo.Modules.Actindo.DataHub.AttributeSets.";
export declare const attributeSetsApiGenerator: (moduleBaseApi?: string) => {
    getList: (query?: IDataTableQueryWithSerializeOptionals) => Promise<IAttributeSetsDataFetcherResponse>;
    get: (id: number, freeze: boolean) => Promise<IApiPayload<ITenantAttributeSet>>;
    create: (entity: Partial<ITenantAttributeSet>) => Promise<IApiPayload<ITenantAttributeSet>>;
    delete: (ids: number[]) => Promise<IApiSuccess>;
    save: (entity: Partial<ITenantAttributeSet>) => Promise<IApiPayload<ITenantAttributeSet>>;
    addAttributes: (query: IAddAttributeRequest) => Promise<IApiSuccess>;
    addAttribute: (dhAttributeSetId: number, dhAttributeId: number) => Promise<IApiSuccess>;
    updateAttribute: (payload: IUpdateAttributeSetsRequest) => Promise<IApiSuccess>;
    removeAttributes: (dhAttributeSetId: number, dhAttributeIds: number[]) => Promise<IApiSuccess>;
    removeAttribute: (dhAttributeSetId: number, dhAttributeId: number) => Promise<IApiSuccess>;
    getPossibleAttributeSetsForHeritage: (dhAttributeSetId: number) => Promise<IApiPayload<IAttributeSetsForHeritage>>;
    getAttributes: (query?: IDataTableQuery & {
        setId: number;
    }) => Promise<IDataFetcherResponse<ITenantAttributeSetMap>>;
    getEntityTypes: () => Promise<IApiPayload<ITenantEntityType>>;
    getListOfLanguagesScopesAndFields: () => Promise<IListOfLanguagesScopesAndFields>;
    getColumns: () => Promise<IApiPayload<IColumnDefinitionContainer>>;
};
