devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
37 lines (36 loc) • 1.46 kB
TypeScript
import { ICloneable, IEquatable } from '@devexpress/utils/lib/types';
export interface IHashBasedCacheTypeCore<T> extends IEquatable<T> {
getHashCode(): number;
}
export interface IHashBasedCacheType<T> extends IHashBasedCacheTypeCore<T>, ICloneable<T> {
}
export type FromJsonConverterType<T> = (obj: any) => T;
export declare class HashBasedCacheCore<T extends IHashBasedCacheTypeCore<T>> {
protected hashtable: Record<number, T[]>;
protected numElements: number;
get count(): number;
constructor();
clear(): void;
getItem(item: T): T;
forEach(callback: (item: T) => void): void;
findItemByPredicate(predicate: (item: T) => boolean): T;
protected processNewItem(_item: T): void;
isExist(item: T): boolean;
DEBUG_MAX_CELL_LENGTH(): number;
removeItems(shouldRemove: (item: T) => boolean): void;
private addItemInternal;
}
export declare abstract class HashBasedCache<T extends IHashBasedCacheType<T>> extends HashBasedCacheCore<T> {
protected tempCacheForMerge: Record<number, T>;
constructor();
clearTemporaryCache(): void;
clear(): void;
merge(jsonObjs: any, convertFromJSON: FromJsonConverterType<T>): void;
getItemByJsonKey(jsonKey: number): T;
addItemForMerge(item: T, jsonKey: number): T;
convertToJSON(convertToJSON: {
(obj: T): any;
}): any[];
indexOf(_item: T): void;
copyFrom(obj: HashBasedCache<T>): void;
}