/**
 * 函数记忆化
 * @param fn 需要缓存的函数
 */
export declare const memoize: <T extends (...args: any[]) => any>(fn: T) => (...args: Parameters<T>) => ReturnType<T>;
/**
 * LRU缓存
 */
export declare class LRUCache<K, V> {
    private capacity;
    private cache;
    constructor(capacity: number);
    get(key: K): V | undefined;
    put(key: K, value: V): void;
}
/**
 * 洗牌算法
 */
export declare const shuffle: <T>(arr: T[]) => T[];
/**
 * 最长公共子序列
 */
export declare const longestCommonSubsequence: (text1: string, text2: string) => number;
/**
 * 最短编辑距离（Levenshtein Distance）
 */
export declare const levenshteinDistance: (str1: string, str2: string) => number;
/**
 * 快速排序
 */
export declare const quickSort: <T>(arr: T[]) => T[];
/**
 * 二分查找
 * @returns 目标值的索引，未找到返回-1
 */
export declare const binarySearch: <T>(arr: T[], target: T) => number;
/**
 * 并查集
 */
export declare class UnionFind {
    private parent;
    private rank;
    constructor(size: number);
    find(x: number): number;
    union(x: number, y: number): void;
    connected(x: number, y: number): boolean;
}
/**
 * 二叉树节点
 */
export declare class TreeNode<T> {
    value: T;
    left: TreeNode<T> | null;
    right: TreeNode<T> | null;
    constructor(value: T, left?: TreeNode<T> | null, right?: TreeNode<T> | null);
}
/**
 * 二叉树遍历
 */
export declare const treeTraversal: {
    preorder<T>(root: TreeNode<T>): T[];
    inorder<T_1>(root: TreeNode<T_1>): T_1[];
    postorder<T_2>(root: TreeNode<T_2>): T_2[];
};
/**
 * KMP字符串匹配
 * @returns 模式串在文本串中的起始位置，未找到返回-1
 */
export declare const kmp: (text: string, pattern: string) => number;
/**
 * Trie（前缀树）
 */
export declare class Trie {
    private root;
    insert(word: string): void;
    search(word: string): boolean;
    startsWith(prefix: string): boolean;
    private traverse;
}
/**
 * 拓扑排序（Kahn算法）
 * @param graph 邻接表表示的有向图
 * @returns 拓扑排序结果，如果存在环则返回空数组
 */
export declare const topologicalSort: (graph: Map<number, number[]>) => number[];
//# sourceMappingURL=algorithms.d.ts.map