/**
 * Route Utilities
 *
 * This file provides utility functions for working with route configurations,
 * including merging, finding, and managing route collections.
 */
import type { IRouteConfig, TPortRange } from '../models/route-types.js';
/**
 * Merge two route configurations
 * The second route's properties will override the first route's properties where they exist
 * @param baseRoute The base route configuration
 * @param overrideRoute The route configuration with overriding properties
 * @returns A new merged route configuration
 */
export declare function mergeRouteConfigs(baseRoute: IRouteConfig, overrideRoute: Partial<IRouteConfig>): IRouteConfig;
/**
 * Expand a port range specification into individual ports.
 */
export declare function expandPortRange(portRange: TPortRange): number[];
/**
 * Check if a port range contains a port.
 */
export declare function portRangeIncludes(portRange: TPortRange, port: number): boolean;
/**
 * Check if a route matches a domain
 * @param route The route to check
 * @param domain The domain to match against
 * @returns True if the route matches the domain, false otherwise
 */
export declare function routeMatchesDomain(route: IRouteConfig, domain: string): boolean;
/**
 * Check if a route matches a port
 * @param route The route to check
 * @param port The port to match against
 * @returns True if the route matches the port, false otherwise
 */
export declare function routeMatchesPort(route: IRouteConfig, port: number): boolean;
/**
 * Check if a route matches a path
 * @param route The route to check
 * @param path The path to match against
 * @returns True if the route matches the path, false otherwise
 */
export declare function routeMatchesPath(route: IRouteConfig, path: string): boolean;
/**
 * Check if a route matches headers
 * @param route The route to check
 * @param headers The headers to match against
 * @returns True if the route matches the headers, false otherwise
 */
export declare function routeMatchesHeaders(route: IRouteConfig, headers: Record<string, string>): boolean;
/**
 * Find all routes that match the given criteria
 * @param routes Array of routes to search
 * @param criteria Matching criteria
 * @returns Array of matching routes sorted by priority
 */
export declare function findMatchingRoutes(routes: IRouteConfig[], criteria: {
    domain?: string;
    port?: number;
    path?: string;
    headers?: Record<string, string>;
}): IRouteConfig[];
/**
 * Find the best matching route for the given criteria
 * @param routes Array of routes to search
 * @param criteria Matching criteria
 * @returns The best matching route or undefined if no match
 */
export declare function findBestMatchingRoute(routes: IRouteConfig[], criteria: {
    domain?: string;
    port?: number;
    path?: string;
    headers?: Record<string, string>;
}): IRouteConfig | undefined;
/**
 * Create a route ID based on route properties
 * @param route Route configuration
 * @returns Generated route ID
 */
export declare function generateRouteId(route: IRouteConfig): string;
/**
 * Clone a route configuration
 * @param route Route to clone
 * @returns Deep copy of the route
 */
export declare function cloneRoute(route: IRouteConfig): IRouteConfig;
