export interface IUniqueNamePool {
    createNew: (prefix?: string) => string;
    add: (item: string) => boolean;
    addRef: (name: string, item: any) => void;
    removeRef: (name: string, item: any) => void;
    remove: (item: string) => void;
    itemRef: (name: string) => any[];
    all: () => string[];
    allRef: () => Record<string, string[]>;
}
export default class UnqiueNamePool implements IUniqueNamePool {
    private readonly _pool;
    private readonly _itemRef;
    all(): string[];
    allRef(): Record<string, string[]>;
    createNew(prefix?: string): string;
    add(newName: string): boolean;
    addRef(name: string, ref: any): void;
    remove(item: string): void;
    removeRef(name: string, item: any): void;
    itemRef(name: string): any[];
}
