import { PartialJSONObject } from '@lumino/coreutils'; /** * The namespace for URL-related functions. */ export declare namespace URLExt { /** * Parse a url into a URL object. * * @param url - The URL string to parse. * * @returns A URL object. */ function parse(url: string): IUrl; /** * Parse URL and retrieve hostname * * @param url - The URL string to parse * * @returns a hostname string value */ function getHostName(url: string): string; /** * Normalize a url. */ function normalize(url: string): string; function normalize(url: undefined): undefined; function normalize(url: string | undefined): string | undefined; /** * Join a sequence of url components and normalizes as in node `path.join`. * * @param parts - The url components. * * @returns the joined url. */ function join(...parts: string[]): string; /** * Encode the components of a multi-segment url. * * @param url - The url to encode. * * @returns the encoded url. * * #### Notes * Preserves the `'/'` separators. * Should not include the base url, since all parts are escaped. */ function encodeParts(url: string): string; /** * Return a serialized object string suitable for a query. * * @param value The source object. * * @returns an encoded url query. * * #### Notes * Modified version of [stackoverflow](http://stackoverflow.com/a/30707423). */ function objectToQueryString(value: PartialJSONObject): string; /** * Return a parsed object that represents the values in a query string. */ function queryStringToObject(value: string): { [key: string]: string | undefined; }; /** * Test whether the url is a local url. * * @param allowRoot - Whether the paths starting at Unix-style filesystem root (`/`) are permitted. * * #### Notes * This function returns `false` for any fully qualified url, including * `data:`, `file:`, and `//` protocol URLs. */ function isLocal(url: string, allowRoot?: boolean): boolean; /** * The interface for a URL object */ interface IUrl { /** * The full URL string that was parsed with both the protocol and host * components converted to lower-case. */ href: string; /** * Identifies the URL's lower-cased protocol scheme. */ protocol: string; /** * The full lower-cased host portion of the URL, including the port if * specified. */ host: string; /** * The lower-cased host name portion of the host component without the * port included. */ hostname: string; /** * The numeric port portion of the host component. */ port: string; /** * The entire path section of the URL. */ pathname: string; /** * The "fragment" portion of the URL including the leading ASCII hash * `(#)` character */ hash: string; /** * The search element, including leading question mark (`'?'`), if any, * of the URL. */ search?: string; } }