import { GuidValue, MultilingualString, PropertyIndexedType } from "../";
import { RichTextEditorExtension } from "../../ux/richtexteditor";
export interface EnterprisePropertyItemSettings {
    type: PropertyIndexedType;
    id: GuidValue;
    required: boolean;
    showLabel?: boolean;
    customLabel?: string;
    description?: MultilingualString;
}
export interface EnterprisePropertyNumberItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Number;
}
export interface EnterprisePropertyBooleanItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Boolean;
}
export interface EnterprisePropertyTextItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Text;
    multiLine?: boolean;
    maxLength?: number;
}
export interface EnterprisePropertyRichTextItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.RichText;
    onConfigureExtensions?: (extensions: Array<RichTextEditorExtension>) => RichTextEditorExtension[];
}
export interface EnterprisePropertyMediaItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Media;
}
export interface EnterprisePropertyEnterpriseKeywordsItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.EnterpriseKeywords;
    allowMultipleValues: boolean;
}
export interface EnterprisePropertyLanguageItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Language;
}
export interface EnterprisePropertyTagsItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Tags;
    allowMultipleValues: boolean;
}
export interface EnterprisePropertyPersonItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Person;
    allowMultipleValues: boolean;
    providerIds?: Array<GuidValue>;
}
export interface EnterprisePropertyTaxonomyItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Taxonomy;
    allowMultipleValues: boolean;
    parentEnterprisePropertyDefinitionId?: GuidValue;
    limitLevel?: number;
}
export interface EnterprisePropertyDateTimeItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.DateTime;
    includeTime: boolean;
}
export interface EnterprisePropertyDataItemSettings extends EnterprisePropertyItemSettings {
    type: PropertyIndexedType.Data;
    providerId?: GuidValue;
}
export interface EnterprisePropertyDataTypeProviderRegistration {
    id: GuidValue;
    name: string;
    editModeElementName: string;
    displayModeElementName?: string;
    valueDefinitionElementName?: string;
}
