import { Template } from '@mdfriday/text-template';
import { TemplateLookup, TemplateNamespace, TemplateInfo, TemplateLookupFunc, TemplateFuncMap, RegularTemplateNamespaceInterface, PartialTemplateNamespaceInterface, ShortcodeTemplateNamespaceInterface } from '../type';
import { BaseOf } from '../vo/baseof';
export declare class Lookup implements TemplateLookup {
    private baseOf;
    private funcsv;
    constructor(baseOf?: BaseOf, funcMap?: TemplateFuncMap);
    findNoDependence(name: string, ns: TemplateNamespace): [Template | null, boolean, Error | null];
    findTemplate(name: string, templateNS: RegularTemplateNamespaceInterface): [Template | null, boolean, Error | null];
    findPartial(name: string, partialNS: PartialTemplateNamespaceInterface): [Template | null, boolean, Error | null];
    findShortcode(name: string, shortcodeNS: ShortcodeTemplateNamespaceInterface): [Template | null, boolean, Error | null];
    findDependentInfo(name: string): [TemplateInfo | null, TemplateInfo | null, boolean];
    getFunc(name: string): any;
    setFunc(name: string, fn: any): void;
    setFuncMap(funcMap: TemplateFuncMap): void;
    getFuncMap(): TemplateFuncMap;
    newTemplateLookup(ns: TemplateNamespace): TemplateLookupFunc;
    getBaseOf(): BaseOf;
    setBaseOf(baseOf: BaseOf): void;
    hasDependencies(name: string): boolean;
    getAllFunctions(): string[];
    clearFunctions(): void;
    getStats(): {
        functionCount: number;
        baseTemplateCount: number;
        dependentTemplateCount: number;
    };
}
export declare function newLookup(baseOf?: BaseOf, funcMap?: TemplateFuncMap): Lookup;
