import * as URI from '../'; export = URITemplate; export as namespace URITemplate; declare const URITemplate: URITemplate.URITemplateStatic; declare namespace URITemplate { type URITemplateLiteral = string; interface URITemplateVariable { name: string; explode: boolean; maxLength?: number | undefined; } interface URITemplateExpression { expression: string; operator: string; variables: ReadonlyArray; } type URITemplatePart = URITemplateLiteral | URITemplateExpression; interface URITemplate { expand(data: URITemplateInput, opts?: object): URI; parse(): this; /** * @description The parsed parts of the URI Template. Only present after calling * `parse()` first. */ parts?: ReadonlyArray | undefined; } interface URITemplateStatic { (template: string): URITemplate; new (template: string): URITemplate; } type URITemplateValue = string | ReadonlyArray | { [key: string]: string } | undefined | null; type URITemplateCallback = (keyName: string) => URITemplateValue; type URITemplateInput = { [key: string]: URITemplateValue | URITemplateCallback } | URITemplateCallback; }