import { DoublyChain } from './chain'; import { DoublyChainElement as DCE, N, FifoNode as FFN, Fifo as FF, SingleChain as SC, IDoublyChain as DC, LfuNode as LN, Lfu as L } from '../typings'; declare class Fifo implements FF { capacity: N; chain: SC>; constructor(capacity: N); _createNode(k: K, v: V): { key: K; value: V; }; get(k: K): any; put(k: K, v: V): number; size(): number; keys(): any[]; values(): any[]; } declare class Lru { capacity: N; chain: DoublyChain<{ key: K; value: V; }>; map: Map>; constructor(capacity: N); _createNode(k: K, v: V): { key: K; value: V; }; get(k: K): V; put(k: K, v: V): number; remove(k: K): any; size(): number; } declare class Lfu implements L { capacity: N; chain: DC>; constructor(capacity: N); _createNode(k: K, v: V, count?: N): LN; _get(k: K): DCE>; get(k: K): any; _insert(node: LN): void; put(k: K, v: V): number; size(): number; keys(): any[]; values(): any[]; } export { Fifo, Lru, Lfu, };