// Type definitions for url-parse 1.4 // Project: https://github.com/unshiftio/url-parse // Definitions by: Hari Sivaramakrishnan // Dmitry Dushkin // David Golightly // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 declare namespace URLParse { type URLPart = | 'auth' | 'hash' | 'host' | 'hostname' | 'href' | 'origin' | 'password' | 'pathname' | 'port' | 'protocol' | 'query' | 'slashes' | 'username'; type QueryParser> = (query: string) => T; type StringifyQuery = (query: object) => string; } interface URLParse { readonly auth: string; readonly hash: string; readonly host: string; readonly hostname: string; readonly href: string; readonly origin: string; readonly password: string; readonly pathname: string; readonly port: string; readonly protocol: string; readonly query: Query; readonly slashes: boolean; readonly username: string; set(part: Part, value: URLParse[Part] | undefined, fn?: false): URLParse; set(part: Part, value: URLParse[Part] | undefined, fn?: URLParse.QueryParser): URLParse; toString(stringify?: URLParse.StringifyQuery): string; } declare const URLParse: { new(address: string, parser?: false): URLParse; new(address: string, parser: true): URLParse>; new (address: string, parser?: URLParse.QueryParser): URLParse; new(address: string, location?: string | object, parser?: false): URLParse; new(address: string, location: string | object | undefined, parser: true): URLParse>; new (address: string, location: string | object | undefined, parser: URLParse.QueryParser): URLParse; (address: string, parser?: false): URLParse; (address: string, parser: true): URLParse>; (address: string, parser: URLParse.QueryParser): URLParse; (address: string, location?: string | object, parser?: false): URLParse; (address: string, location: string | object | undefined, parser: true): URLParse>; (address: string, location: string | object | undefined, parser: URLParse.QueryParser): URLParse; extractProtocol(url: string): { slashes: boolean; protocol: string; rest: string; }; location(url: string): object; qs: { parse: URLParse.QueryParser; stringify: URLParse.StringifyQuery; }; trimLeft(url: string): string; }; export = URLParse;