declare function pathToRegexp (path: pathToRegexp.Path, options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; declare function pathToRegexp (path: pathToRegexp.Path, keys?: pathToRegexp.Key[], options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; declare namespace pathToRegexp { export interface PathRegExp extends RegExp { // An array to be populated with the keys found in the path. keys: Key[]; } export interface RegExpOptions { /** * When `true` the route will be case sensitive. (default: `false`) */ sensitive?: boolean; /** * When `false` the trailing slash is optional. (default: `false`) */ strict?: boolean; /** * When `false` the path will match at the beginning. (default: `true`) */ end?: boolean; /** * Sets the final character for non-ending optimistic matches. (default: `/`) */ delimiter?: string; } export interface ParseOptions { /** * Set the default delimiter for repeat parameters. (default: `'/'`) */ delimiter?: string; } export interface TokensToFunctionOptions { /** * When `true` the regexp will be case sensitive. (default: `false`) */ sensitive?: boolean; } /** * Parse an Express-style path into an array of tokens. */ export function parse (path: string, options?: ParseOptions): Token[]; /** * Transforming an Express-style path into a valid path. */ export function compile (path: string, options?: ParseOptions & TokensToFunctionOptions): PathFunction; /** * Transform an array of tokens into a path generator function. */ export function tokensToFunction (tokens: Token[], options?: TokensToFunctionOptions): PathFunction; /** * Transform an array of tokens into a matching regular expression. */ export function tokensToRegExp (tokens: Token[], options?: RegExpOptions): PathRegExp; export function tokensToRegExp (tokens: Token[], keys?: Key[], options?: RegExpOptions): PathRegExp; export interface Key { name: string | number; prefix: string; delimiter: string; optional: boolean; repeat: boolean; pattern: string; partial: boolean; asterisk: boolean; } interface PathFunctionOptions { pretty?: boolean; } export type Token = string | Key; export type Path = string | RegExp | Array; export type PathFunction = (data?: Object, options?: PathFunctionOptions) => string; } export = pathToRegexp;