import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared/models";
import { PropertyIndexedType } from "../Enums";
import { Identity } from "../identities";
export interface AppNamingPolicy {
    id: number;
    businessProfileId: GuidValue;
    appDefinitionId: GuidValue;
    definition: AppNamingPolicyDefinition;
    createdAt: string;
    modifiedAt: string;
    createdBy: Identity;
    modifiedBy: Identity;
}
export interface AppNamingPolicyDefinition {
    title: string;
    prefixes: AffixDefinition[];
    suffixes: AffixDefinition[];
    blockedWords: string[];
}
export declare enum AffixScope {
    TitleAndAlias = 0,
    Alias = 1
}
export declare enum AffixType {
    Fixed = 0,
    User = 1,
    App = 2
}
export interface AffixDefinition {
    scope: AffixScope;
    type: AffixType;
}
export interface FixedAffixDefinition extends AffixDefinition {
    type: AffixType.Fixed;
    value: string;
}
export interface UserAffixDefinition extends AffixDefinition {
    type: AffixType.User;
    targetingPropertyId: GuidValue;
}
export interface AppAffixDefinition extends AffixDefinition {
    type: AffixType.App;
    enterprisePropertyInternalName: string;
}
export interface AppAffixDefinitionValue {
    type: PropertyIndexedType;
    internalName: string;
    label: string;
    value?: string;
    termsetId?: GuidValue;
    termIds?: GuidValue[];
}
