/**
 * Route Implementation - Functor Laws
 * Core route primitives and combinators
 */
import { Route, Option } from './types';
/**
 * Identity function for functor law verification
 */
export declare const id: <A>(a: A) => A;
/**
 * Function composition for functor law verification
 */
export declare const compose: <A, B, C>(f: (b: B) => C, g: (a: A) => B) => (a: A) => C;
/**
 * Literal route - matches exact path
 */
export declare const literal: (path: string) => Route<{}>;
/**
 * Parameter route - extracts path parameters
 */
export declare const param: <T extends Record<string, string>>(template: string) => Route<T>;
/**
 * Query route - extracts query parameters
 */
export declare const query: <T extends Record<string, string>>(basePath: string) => Route<T>;
/**
 * Wildcard route - catches all paths
 */
export declare const wildcard: (pattern: string) => Route<{
    path: string;
}>;
/**
 * Route Combinators - Algebraic Operations
 */
/**
 * Sequence combinator - combines routes in sequence
 */
export declare const sequence: <A, B>(routeA: Route<A>, routeB: Route<B>) => Route<A & B>;
/**
 * Choice combinator - tries routes in order
 */
export declare const choice: <A>(routes: Route<A>[]) => Route<A>;
/**
 * Optional combinator - makes route optional
 */
export declare const optional: <A>(route: Route<A>) => Route<A | null>;
/**
 * Nested combinator - creates nested routes
 */
export declare const nested: <A, B>(parent: Route<A>, _child: Route<B>) => Route<A & {
    child: B;
}>;
/**
 * Route matching utility
 */
export declare const matchRoute: <A>(routes: Route<A>[], path: string) => Option<Route<A>>;
/**
 * Type-safe route builder
 */
export declare const route: <T extends string>(template: T) => Route<{}>;
