1export interface URIComponents {
2    scheme?: string;
3    userinfo?: string;
4    host?: string;
5    port?: number | string;
6    path?: string;
7    query?: string;
8    fragment?: string;
9    reference?: string;
10    error?: string;
11}
12export interface URIOptions {
13    scheme?: string;
14    reference?: string;
15    tolerant?: boolean;
16    absolutePath?: boolean;
17    iri?: boolean;
18    unicodeSupport?: boolean;
19    domainHost?: boolean;
20}
21export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
22    scheme: string;
23    parse(components: ParentComponents, options: Options): Components;
24    serialize(components: Components, options: Options): ParentComponents;
25    unicodeSupport?: boolean;
26    domainHost?: boolean;
27    absolutePath?: boolean;
28}
29export interface URIRegExps {
30    NOT_SCHEME: RegExp;
31    NOT_USERINFO: RegExp;
32    NOT_HOST: RegExp;
33    NOT_PATH: RegExp;
34    NOT_PATH_NOSCHEME: RegExp;
35    NOT_QUERY: RegExp;
36    NOT_FRAGMENT: RegExp;
37    ESCAPE: RegExp;
38    UNRESERVED: RegExp;
39    OTHER_CHARS: RegExp;
40    PCT_ENCODED: RegExp;
41    IPV4ADDRESS: RegExp;
42    IPV6ADDRESS: RegExp;
43}
44export declare const SCHEMES: {
45    [scheme: string]: URISchemeHandler;
46};
47export declare function pctEncChar(chr: string): string;
48export declare function pctDecChars(str: string): string;
49export declare function parse(uriString: string, options?: URIOptions): URIComponents;
50export declare function removeDotSegments(input: string): string;
51export declare function serialize(components: URIComponents, options?: URIOptions): string;
52export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
53export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
54export declare function normalize(uri: string, options?: URIOptions): string;
55export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
56export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
57export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
58export declare function escapeComponent(str: string, options?: URIOptions): string;
59export declare function unescapeComponent(str: string, options?: URIOptions): string;
60