import { ContextService } from './context.service';
export declare abstract class TypeResultCache<T> {
    protected readonly context: ContextService;
    protected constructor(context: ContextService);
    private readonly resultCache;
    private readonly regexCache;
    private readonly subtypeCache;
    protected default: T;
    addType(type: string, result: T): void;
    addMatch(matcher: RegExp, result: T): void;
    addSubtype(type: string, result: T): void;
    setDefault(def: T): void;
    private cacheAndReturn(type, result);
    private isSubtypeOf(subtype, index, count);
    private isSubtype(subtype);
    getResult(type: string | null): Promise<any>;
}
