import { Result } from "navidev-adt-api/dist/shared/core/Result";
import AdtException from "navidev-adt-api/dist/shared/exceptions/adtException";
import MetadataInterface from "./metadataInterface";
export type MetadataInfoOptions = {
    ignoreValueHelp?: boolean;
    ignoreFields?: boolean;
    ignoreAnnotVocab?: boolean;
};
export declare enum TextArrangementTypes {
    TextOnly = "TextOnly",
    TextFirst = "TextFirst",
    TextLast = "TextLast",
    TextSeparate = "TextSeparate"
}
export type EntityWithAnnotation = {
    name: string;
    annotation: string[];
};
export type EntitiesWithAnnotations = EntityWithAnnotation[];
export type EntityAnnotationDetail = {
    semantic: string;
    entity: string;
};
export type EntityWithAnnotationV4 = {
    name: string;
    annotation: EntityAnnotationDetail[];
};
export type EntitiesWithAnnotationsV4 = EntityWithAnnotationV4[];
export type ValueHelpParameterInOut = {
    entityField: string;
    valueListField: string;
    onlyDisplay: boolean;
};
export type ValueHelpParametersInOut = ValueHelpParameterInOut[];
export type ValueHelpParameterDisplay = {
    field: string;
};
export type ValueHelpParametersDisplay = ValueHelpParameterDisplay[];
export type ValueHelpInfo = {
    entityValueHelp: string;
    forValidation: boolean;
    parametersInOut: ValueHelpParametersInOut;
    parametersDisplay: ValueHelpParametersDisplay;
};
export type LineItemInfo = {
    position: number;
};
export type IdentificationInfo = {
    position: number;
};
export type EntityField = {
    name: string;
    maxLength: number;
    nullable: boolean;
    label: string;
    quickInfo: string;
    heading: string;
    type: string;
    key: boolean;
    unit: string;
    semantics: string;
    valueHelpInfo: ValueHelpInfo;
    isCurrency: boolean;
    searchable: boolean;
    hidden: boolean;
    hiddenFilter: boolean;
    lineItem?: LineItemInfo;
    identification?: IdentificationInfo;
    textElement?: string;
    textArrangement?: TextArrangementTypes;
    precision?: number;
    scale?: number | string;
};
export type EntityFields = EntityField[];
export type Entity = {
    name: string;
    label: string;
    entityType: string;
    entityTypeName: string;
    creatable: boolean;
    deletable: boolean;
    updatable: boolean;
    searchable: boolean;
    fields: EntityFields;
};
export type Entities = Entity[];
export type MetadataContent = {
    namespace: string;
    alias: string;
    entities: Entities;
    serviceUrl: string;
};
export type ResultLoadMetadata = Result<string> | Result<AdtException>;
export type ResultMetadataContent = Result<MetadataContent> | Result<AdtException>;
export type ResultMetadataInstance = Result<MetadataInterface> | Result<AdtException>;
//# sourceMappingURL=metadataTypes.d.ts.map