/**
 * Path utilities for URL pattern matching
 */
/**
 * Splits a string (URL or pattern) into its path part and query part.
 */
export declare function splitPathAndQuery(value: string): {
    path: string;
    query: string;
};
/**
 * Parsed query parameter definition from a pattern.
 */
export interface QueryParamDef {
    /** The URL query key (e.g. "tab") */
    key: string;
    /** The parameter name (e.g. "tab") */
    paramName: string;
    /** The declared type (e.g. "number") */
    paramType: string;
    /** Whether this query parameter is required (marked with !) */
    required: boolean;
}
/**
 * Parse query parameter definitions from a pattern's query string.
 * Format: "key=:param<type>&key2=:param2"
 */
export declare function parseQueryPatternDefs(queryPattern: string): QueryParamDef[];
/**
 * Parse a URL query string into a key-value map.
 * Handles repeated keys by keeping the last value.
 */
export declare function parseQueryString(query: string): Record<string, string>;
/**
 * Splits a URL or pattern string into segments
 */
export declare function splitPath(path: string): string[];
/**
 * Checks if a segment is a parameter (starts with ":")
 */
export declare function isParameterSegment(segment: string): boolean;
/**
 * Checks if a segment is a wildcard parameter (starts with ":" and ends with "*")
 */
export declare function isWildcardSegment(segment: string): boolean;
/**
 * Extracts parameter name from a parameter segment
 */
export declare function extractParamName(segment: string): string;
export declare function extractParamType(segment: string): string;
/**
 * Joins segments into a URL path with caching for common paths
 */
export declare function joinPath(segments: string[]): string;
//# sourceMappingURL=path-utils.d.ts.map