import type { IRouteConfig } from './models/route-types.js';
/**
 * Preprocesses routes before sending them to Rust.
 *
 * Strips non-serializable fields (functions, callbacks) and classifies
 * routes that must be handled by TypeScript (socket-handler, dynamic host/port).
 */
export declare class RoutePreprocessor {
    /**
     * Map of route name/id → original route config (with JS functions preserved).
     * Used by the socket handler server to look up the original handler.
     */
    private originalRoutes;
    /**
     * Preprocess routes for the Rust binary.
     *
     * - Routes with `socketHandler` callbacks are marked as socket-handler type
     *   (Rust will relay these back to TS)
     * - Routes with dynamic `host`/`port` functions are converted to socket-handler
     *   type (Rust relays, TS resolves the function)
     * - Non-serializable fields are stripped
     * - Original routes are preserved in the local map for handler lookup
     */
    preprocessForRust(routes: IRouteConfig[]): IRouteConfig[];
    /**
     * Get the original route config (with JS functions) by route name or id.
     */
    getOriginalRoute(routeKey: string): IRouteConfig | undefined;
    /**
     * Get all original routes that have socket handlers or dynamic functions.
     */
    getHandlerRoutes(): Map<string, IRouteConfig>;
    private preprocessRoute;
    private routeNeedsTsHandling;
    private cleanAction;
    private cleanTarget;
}
