import { BS } from './bs'; declare type NsEntry = { srcName: BS | undefined; trgName: BS | undefined; uri: BS; uriString: string; }; export declare type NsResolverMap = { [nsName: string]: string; }; /** * Namespace resolver * * Representing the mapping of epxected namespaces and their URI's * * Created using an object whith namespaces as keys and URI's as values * * const nsResolver = NsResolver.create({svg: 'http://www.w3.org/2000/svg'}) */ export declare class NsResolver extends Array { /** creates an instance of `NsResolver` */ static create(nsResolverMap: NsResolverMap): NsResolver; /** * create a new resolver inheriting this one with possibly additional namespace mappings of the current XML files * * const nsResolver = NsResolver.create({ * abc: 'uri://abc', * lmn: 'uri://lmn', * '': 'uri://uvw', * }) * const nsResolverChild = nsResolver.forChildTag([ * { name: BS.create('abd'), uri: BS.create('uri://abc') }, * { name: undefined, uri: BS.create('uri://lmn') }, * { name: BS.create('uvw'), uri: BS.create('uri://uvw') }, * ]) * nsResolverChild.resolveTagName(BS.create('abd:tagName1')) === 'abc:tagName1' * nsResolverChild.resolveTagName(BS.create('tagName2')) === 'lmn:tagName2' * nsResolverChild.resolveTagName(BS.create('uvw:tagName3')) === 'tagName3' * */ forChildTag(ns: { name?: BS; uri: BS; }[]): NsResolver; /** resolve the namespace of a fully qualified tag name */ resolveTagName(name: BS): BS; private replaceNs; /** resolve the namespace of a fully qualified attribute name */ resolveAtts(atts: { name: BS; value: BS; }[]): { name: BS; value: BS; }[]; /** resolve the namespace set (attributes with 'xmlns' prefix) of a tag */ resolveNs(tagNs: { name?: BS; uri: BS; }[]): { name: BS | undefined; uriString: string; uri: BS; }[]; } export {};