import { Token } from '../types';

/**
 * Options for token sorting
 */
export interface SortOptions {
    searchKeyword?: string;
    activeNetwork?: number | "all";
    filteredTokensSet?: Set<string>;
    relevanceScoresMap?: Map<string, number>;
}
/**
 * Creates an optimized token sorter function with pre-computed metadata
 * This function uses pre-computed relevance scores and Set for O(1) filteredTokens lookup
 */
export declare function createTokenSorter(options: SortOptions): (a: Token, b: Token) => number;
/**
 * Pre-computes relevance scores for a list of tokens
 * Returns a Map with token keys as keys and relevance scores as values
 */
export declare function precomputeRelevanceScores(tokens: Token[], searchKeyword: string): Map<string, number>;
/**
 * Creates a Set of token keys from a filteredTokens array
 * Used for O(1) lookup during sorting
 */
export declare function createFilteredTokensSet(filteredTokens: Token[]): Set<string>;
/**
 * Sorts tokens using the unified sort function with pre-computed metadata
 * This is the main entry point for optimized token sorting
 * Pre-computes relevance scores for optimal performance
 */
export declare function sortTokens(tokens: Token[], options: SortOptions): Token[];
