= `{${P}${A}}`; /** * @category Constructor * @since 0.13.0 */ export declare const prefix:
(prefix: P, param: A) => `{${P}${A}}`;
/**
* Construct query params
* @category Model
* @since 0.13.0
*/
export declare type QueryParam (...params: P) => QueryParams ;
/**
* @category Constructor
* @since 0.13.0
*/
export declare const unnamed: "(.*)";
/**
* @category Model
* @since 0.13.0
*/
export declare type Unnamed = typeof unnamed;
/**
* Composes other path parts into a single path
* @category Type-level
* @since 0.13.0
*/
export declare type PathJoin> = A extends readonly [
infer Head,
...infer Tail
] ? `${FormatPart (...parts: P) => PathJoin ;
/**
* Formats a piece of a path
* @category Combinator
* @since 0.13.0
*/
export declare const formatPart: (part: string) => string;
/**
* @category Type-level
* @since 0.13.0
*/
export declare type FormatPart = `` extends P ? P : RemoveLeadingSlash extends `\\?${infer _}` ? RemoveLeadingSlash : RemoveLeadingSlash extends `{${infer _}` ? RemoveLeadingSlash : P extends QueryParam }`;
/**
* Remove forward slashes prefixes recursively
* @category Type-level
* @since 0.13.0
*/
export declare type RemoveLeadingSlash = A extends `/${infer R}` ? RemoveLeadingSlash = Compact = P extends `${infer Head}\\?${infer Tail}` ? readonly [...PathToParts = P extends `${infer _}\\${infer Q}` ? Q : ``;
declare type QueryParamValue > = P extends `${infer Head}\\?${infer Tail}` ? PathJoin = P extends Optional> ? R extends keyof Params ? readonly [Params[R], AST & Record = P extends `${infer Head}&${infer Tail}` ? readonly [Head, ...SplitQueryParams[], R extends string = ``> = Q extends readonly [infer Head, ...infer Tail] ? QueryParams
> = Q extends `\\?${infer Q}` ? QueryParamsToParts
: Q extends `?${infer Q}` ? QueryParamsToParts
: Q extends `${infer Head}&${infer Tail}` ? QueryParamsToParts
];
/**
* @category Type-level
* @since 0.13.0
*/
export declare type QueryToParams
= Q extends `${infer Head}&${infer Tail}` ? QueryToParams
= Q extends readonly [infer Head, ...infer Tail] ? InterpolateWithQueryParams