type Template<T> = {
    toString(): string;
    deepCopy(): T;
};
export declare class AliasMap<T extends Template<T>> {
    #private;
    static fromAliases<V extends Template<V>>(aliases: Record<number, V>): AliasMap<V>;
    constructor(config: {
        map: Map<number, T>;
        revSerializedMap: Map<string, number>;
    });
    dispose(): void;
    set(alias: number, value: T): void;
    get(alias: number): T | undefined;
    findAlias(value: T): number | undefined;
    toAliases(): Record<number, T>;
    get size(): number;
}
export {};
