import { Edm } from '@tjc-group/odata-v4-metadata';
import { Xml } from './XmlCreator';
declare class EndPoint extends Edm.EdmItemBase {
    type: string;
    role: string;
    multiplicity: string;
}
declare class Association extends Edm.EdmItemBase {
    name: string;
    ends: Array<EndPoint>;
}
declare class AssociationSet extends Edm.EdmItemBase {
    name: string;
    association: Association;
    ends: Array<EndPoint>;
}
declare class SchemaV2 extends Edm.Schema {
    associations: Array<Association>;
}
declare class EntityContainerV2 extends Edm.EntityContainer {
    associationSets: Array<AssociationSet>;
}
export declare class XmlMetadata {
    metadata: Edm.Edmx;
    private options;
    constructor(options: any, edmx: Edm.Edmx);
    processMetadata(): any;
    buildEdmx(xml: Xml.XmlCreator, edmx: Edm.Edmx): void;
    buildDataServices(xml: Xml.XmlCreator, dataservices: Edm.DataServices): void;
    buildSchema(xml: Xml.XmlCreator, schemas: Edm.Schema[]): void;
    buildAssociations(xml: Xml.XmlCreator, associations: Association[], _schema?: SchemaV2, _allSchemas?: Edm.Schema[]): void;
    buildAssociationEnds(xml: Xml.XmlCreator, ends: EndPoint[]): void;
    buildTypeDefinitions(xml: Xml.XmlCreator, typeDefinitions: Edm.TypeDefinition[]): void;
    buildEnumTypes(xml: Xml.XmlCreator, enumTypes: Edm.EnumType[]): void;
    buildEntityTypes(xml: Xml.XmlCreator, entityTypes: Edm.EntityType[], _schema?: Edm.Schema, _allSchemas?: Edm.Schema[]): void;
    buildComplexTypes(xml: Xml.XmlCreator, complexTypes: Edm.ComplexType[], _schema?: Edm.Schema, _allSchemas?: Edm.Schema[]): void;
    buildType(xml: Xml.XmlCreator, type: Edm.EntityType | Edm.ComplexType, xmlElementName: string, _currentSchema?: Edm.Schema, _allSchemas?: Edm.Schema[]): void;
    buildTypeKeys(xml: Xml.XmlCreator, key: Edm.Key): void;
    buildTypeProperties(xml: Xml.XmlCreator, properties: Edm.Property[]): void;
    typePropertyAttributes: Object;
    buildTypeNavigationProperties(xml: Xml.XmlCreator, navigationProperties: Edm.NavigationProperty[], _schema?: Edm.Schema, _allSchemas?: Edm.Schema[]): void;
    buildNavPropertyReferentialConstraints(xml: Xml.XmlCreator, referentialConstraints: Edm.ReferentialConstraint[]): void;
    typeNavigationPropertyAttributes: Object;
    typeNavigationPropertyAttributesV2: Object;
    buildEnumMembers(xml: Xml.XmlCreator, members: Edm.Member[]): void;
    typeMemberAttributes: Object;
    buildAttributes(xml: Xml.XmlCreator, object: any, mappings: any): void;
    buildActions(xml: Xml.XmlCreator, actions: Edm.Action[]): void;
    buildFunctions(xml: Xml.XmlCreator, functions: Edm.Function[]): void;
    buildParameters(xml: Xml.XmlCreator, parameters: Edm.Parameter[]): void;
    parameterAttributes: Object;
    buildReturnType(xml: Xml.XmlCreator, returnType: Edm.ReturnType): void;
    buildEntityContainer(xml: Xml.XmlCreator, entityContainers: EntityContainerV2[]): void;
    buildEntitySets(xml: Xml.XmlCreator, entitySets: Edm.EntitySet[]): void;
    buildAssociationSets(xml: Xml.XmlCreator, associationSets: AssociationSet[]): void;
    buildAssociationSetEnds(xml: Xml.XmlCreator, ends: EndPoint[]): void;
    buildActionImports(xml: Xml.XmlCreator, actionImports: Edm.ActionImport[]): void;
    buildFunctionImports(xml: Xml.XmlCreator, functionImports: Edm.FunctionImport[]): void;
    buildSchemaAnnotations(xml: Xml.XmlCreator, schemaAnnotations: Edm.Annotations[]): void;
    buildAnnotations(xml: Xml.XmlCreator, annotations: Edm.Annotation[]): void;
    buildCollectionAnnotation(xml: Xml.XmlCreator, value: any[], annotConfig: any, _: Edm.Annotation): void;
    annotationAttributes: Object;
    annotationTypes: Object;
}
export {};
