export interface ParseOptions { /** * Set the default delimiter for repeat parameters. (default: `'/'`) */ delimiter?: string; /** * List of characters to consider delimiters when parsing. (default: `undefined`, any character) */ whitelist?: string | string[]; } /** * Normalize a pathname for matching, replaces multiple slashes with a single * slash and normalizes unicode characters to "NFC". When using this method, * `decode` should be an identity function so you don't decode strings twice. */ export declare function normalizePathname(pathname: string): string; /** * Parse a string for the raw tokens. */ export declare function parse(str: string, options?: ParseOptions): Token[]; export interface TokensToFunctionOptions { /** * When `true` the regexp will be case sensitive. (default: `false`) */ sensitive?: boolean; /** * Function for encoding input strings for output. */ encode?: (value: string, token: Key) => string; /** * When `false` the function can produce an invalid (unmatched) path. (default: `true`) */ validate?: boolean; } /** * Compile a string to a template function for the path. */ export declare function compile

(str: string, options?: ParseOptions & TokensToFunctionOptions): PathFunction

; export declare type PathFunction

= (data?: P) => string; /** * Expose a method for transforming tokens into the path function. */ export declare function tokensToFunction

(tokens: Token[], options?: TokensToFunctionOptions): PathFunction

; export interface RegexpToFunctionOptions { /** * Function for decoding strings for params. */ decode?: (value: string, token: Key) => string; } /** * A match result contains data about the path match. */ export interface MatchResult

{ path: string; index: number; params: P; } /** * A match is either `false` (no match) or a match result. */ export declare type Match

= false | MatchResult

; /** * The match function takes a string and returns whether it matched the path. */ export declare type MatchFunction

= (path: string) => Match

; /** * Create path match function from `path-to-regexp` spec. */ export declare function match

(str: Path, options?: ParseOptions & RegexpOptions & RegexpToFunctionOptions): MatchFunction

; /** * Create a path match function from `path-to-regexp` output. */ export declare function regexpToFunction

(re: RegExp, keys: Key[], options?: RegexpToFunctionOptions): MatchFunction

; /** * Metadata about a key. */ export interface Key { name: string | number; prefix: string; delimiter: string; optional: boolean; repeat: boolean; pattern: string; } /** * A token is a string (nothing special) or key metadata (capture group). */ export declare type Token = string | Key; /** * Expose a function for taking tokens and returning a RegExp. */ export declare function tokensToRegexp(tokens: Token[], keys?: Key[], options?: RegexpOptions): RegExp; export interface RegexpOptions { /** * When `true` the regexp will be case sensitive. (default: `false`) */ sensitive?: boolean; /** * When `true` the regexp allows an optional trailing delimiter to match. (default: `false`) */ strict?: boolean; /** * When `true` the regexp will match to the end of the string. (default: `true`) */ end?: boolean; /** * When `true` the regexp will match from the beginning of the string. (default: `true`) */ start?: boolean; /** * Sets the final character for non-ending optimistic matches. (default: `/`) */ delimiter?: string; /** * List of characters that can also be "end" characters. */ endsWith?: string | string[]; } export interface ParseOptions { /** * Set the default delimiter for repeat parameters. (default: `'/'`) */ delimiter?: string; } /** * Supported `path-to-regexp` input types. */ export declare type Path = string | RegExp | Array; /** * Normalize the given path string, returning a regular expression. * * An empty array can be passed in for the keys, which will hold the * placeholder key descriptions. For example, using `/user/:id`, `keys` will * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. */ export declare function pathToRegexp(path: Path, keys?: Key[], options?: RegexpOptions & ParseOptions): RegExp;