/**
 * Route Selection Logic
 *
 * First quote call (activeRoute === undefined):
 *   - Set bestRoute as active route (prioritizes suggestedRoute for optimal default)
 *
 * Quote refresh (activeRoute exists):
 *   - If retainPreviousRoute is false: Always select bestRoute
 *   - If retainPreviousRoute is true (default):
 *     - Check activeRoute tags against available routes (MAX_OUTPUT > FASTEST > SUGGESTED priority)
 *     - Priority rationale: On first call, we show suggested route (most optimal) by default.
 *       On subsequent refreshes, we retain explicit user choices (MAX_OUTPUT/FASTEST) over the
 *       default suggestion. This ensures users who selected max output or fastest routes keep
 *       their preference, while still allowing the suggested route to update on refresh.
 *     - If activeRoute doesn't match any top route and it's manual -> try protocol matching
 *     - Otherwise fallback to bestRoute
 *
 * Mode switch:
 *   - Clear active route (handled in separate effect)
 *
 * Wrap/unwrap case:
 *   - Always use autoRoute (takes priority)
 */
interface UseRouteSelectionOptions {
    retainPreviousRoute?: boolean;
}
export declare const useRouteSelection: (options?: UseRouteSelectionOptions) => void;
export {};
