export interface ParseOptions { /** * Set the default delimiter for repeat parameters. (default: `'/'`) */ delimiter?: string; /** * List of characters to automatically consider prefixes when parsing. */ prefixes?: 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 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 type Match
= false | MatchResult
; /** * The match function takes a string and returns whether it matched the path. */ export type MatchFunction
= (path: string) => Match
; /** * Create path match function from `path-to-regexp` spec. */ export declare function match
(str: Path, options?: ParseOptions & TokensToRegexpOptions & 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;
suffix: string;
pattern: string;
modifier: string;
}
/**
* A token is a string (nothing special) or key metadata (capture group).
*/
export type Token = string | Key;
export interface TokensToRegexpOptions {
/**
* When `true` the regexp will be case sensitive. (default: `false`)
*/
sensitive?: boolean;
/**
* When `true` the regexp won't allow 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;
/**
* Encode path tokens for use in the `RegExp`.
*/
encode?: (value: string) => string;
}
/**
* Expose a function for taking tokens and returning a RegExp.
*/
export declare function tokensToRegexp(tokens: Token[], keys?: Key[], options?: TokensToRegexpOptions): RegExp;
/**
* Supported `path-to-regexp` input types.
*/
export type Path = string | RegExp | Array