import { IDataFetcherResponse } from '../../../../../_common';
import { ITenantAttributeScope } from '../Scopes';
import { ITenantAttributeLanguage } from '../Languages';
import { IBaseEntity, IDataTypesAttributeConfigurationAbstract } from '../../common';

export interface IAttributeSetsDataFetcherResponse extends IDataFetcherResponse<ITenantAttributeSet> {
    /** false if you are not allowed to add a new attribute set */
    allowedCreateAction: boolean;
}
/** Actindo.Modules.Actindo.DataHub.Models.Tenant.EntityType */
export interface ITenantEntityType {
    id: number;
    name: string;
    className: string;
    variantableProperties: string[];
    entityId: number;
    _E: number;
}
/** Actindo.Modules.Actindo.DataHub.Models.Tenant.AttributeSet */
export interface ITenantAttributeSet extends IBaseEntity {
    /** true if all languages are available */
    allLanguages: boolean;
    /** true if all scopes are available */
    allScopes: boolean;
    entityType: ITenantEntityType;
    entityTypeClassName: string;
    /** heritage mode are copyOnce or permanent link */
    heritageMode?: number;
    languages: unknown[];
    languagesArray: ITenantAttributeLanguage[];
    ownerPluginName: string;
    parentSet?: ITenantAttributeSet;
    parentSetId?: number;
    parentSetName: string;
    scopes: unknown[];
    scopesArray: ITenantAttributeScope[];
    syncConfiguration: boolean;
    _E: number;
}
export interface IAddAttributeRequest {
    dhAttributeSetId: number;
    dhAttributeIds: number[];
    requireFlag?: boolean;
    uniqueFlag?: boolean;
    readOnly?: boolean;
    inherited?: boolean;
}
export interface IUpdateAttributeSetsRequest {
    id: number;
    requireFlag?: boolean;
    uniqueFlag?: boolean;
    readOnly?: boolean;
    inherited?: boolean;
    config?: IDataTypesAttributeConfigurationAbstract;
    resetToDefaultConfiguration?: boolean;
}
export interface IAttributeSetsForHeritage {
    id: number;
    key: string;
    name: string;
    parentSetKeys: unknown[];
}
export declare enum ATTRIBUTE_SET_INHERITANCE {
    COPY_ONCE = 0,
    INHERIT = 1
}
