import { SetParams } from '@solidjs/router'; export type MatchFilter = readonly string[] | RegExp | ((s: string) => boolean); export type MatchFilters

= P extends string ? { [K in PathParams

[number]]?: MatchFilter; } : Record; export type PathParams

= P extends `${infer Head}/${infer Tail}` ? [...PathParams, ...PathParams] : P extends `:${infer S}?` ? [S] : P extends `:${infer S}` ? [S] : P extends `*${infer S}` ? [S] : []; export type Params = Record; export interface PathMatch { params: Params; path: string; } export declare function createMatcher(path: S, partial?: boolean, matchFilters?: MatchFilters): (location: string) => PathMatch | null; export declare function expandOptionals(pattern: string): string[]; export declare function getRouteTemplates(children: HTMLCollection): HTMLTemplateElement[]; export declare function cloneElement(element: HTMLElement | HTMLTemplateElement | Element): HTMLElement; export declare function mergeSearchString(search: string, params: SetParams): string;