import { TagName as _TagName, Xml } from "xml-ns-parser"; export declare type TagName = _TagName & { root?: boolean; }; export declare type Occurence = { minOccurance: number; maxOccurance: number | 'unbounded'; }; export declare type sequence = { type: 'sequence'; occurence: Occurence; content: (container | element)[]; }; export declare type all = { type: 'all'; occurence: Occurence; content: (container | element)[]; }; export declare type choise = { type: 'choise'; occurence: Occurence; content: (container | element)[]; }; export declare type simpleContent = { type: 'simpleContent'; base: complexType | simpleType; attributes: attribute[]; }; export declare type complexContent = { type: 'complexContent'; base: complexType | simpleType; content: container | undefined; attributes: attribute[]; }; export declare type container = sequence | all | choise; export declare type attribute = { type: 'attribute'; name: TagName; optional: boolean; default: any; simpleType: simpleType; }; export declare type complexType = { type: 'complexType'; name?: TagName; content: container | simpleContent | complexContent | undefined; attributes: attribute[]; }; export declare type simpleType = simpleTypeList | simpleTypeRestriction | simpleTypeUnion | nativeType; export declare type nativeType = { type: 'simpleType'; subType: 'native'; name?: TagName; base: 'string' | 'number' | 'boolean'; original: 'int' | 'integer' | 'long' | 'string' | 'token' | 'boolean' | 'float' | 'positiveInteger'; }; export declare type simpleTypeList = { type: 'simpleType'; subType: 'list'; name?: TagName; }; export declare type simpleTypeRestriction = simpleTypeRestrictionEnumeration | simpleTypeRestrictionPattern | simpleTypeRestrictionNumber | simpleTypeRestrictionSimple; export declare type simpleTypeRestrictionEnumeration = { type: 'simpleType'; subType: 'restriction'; subSubType: 'enumeration'; name?: TagName; baseType: simpleType; values: any[]; }; export declare type simpleTypeRestrictionSimple = { type: 'simpleType'; subType: 'restriction'; subSubType: 'simple'; name?: TagName; baseType: simpleType; }; export declare type simpleTypeRestrictionPattern = { type: 'simpleType'; subType: 'restriction'; subSubType: 'pattern'; name?: TagName; pattern: RegExp; }; export declare type simpleTypeRestrictionNumber = { type: 'simpleType'; subType: 'restriction'; subSubType: 'Number'; name?: TagName; minInclusive?: number; minExclusive?: number; maxExclusive?: number; maxInclusive?: number; }; export declare type simpleTypeUnion = { type: 'simpleType'; subType: 'union'; name?: TagName; unions: simpleType[]; }; export declare type element = { type: 'element'; content: complexType | simpleType | undefined; name: TagName; occurence: Occurence; }; export default function parseSchemas(schemas: (Xml[]) | string, entityLookup?: (path: string) => Promise): Promise;