import { BaseOfManager, TemplateInfo } from '../type';
/**
 * BaseOf value object for managing base template inheritance
 * TypeScript version of Go's BaseOf struct
 */
export declare class BaseOf implements BaseOfManager {
    private baseof;
    private needsBaseof;
    /**
     * Get template search order for finding base templates
     */
    getTemplateSearchOrder(templateName: string): string[];
    /**
     * Get base template info by key
     */
    getBaseOf(key: string): TemplateInfo | null;
    /**
     * Get template that needs base template by key
     */
    getNeedsBaseOf(key: string): TemplateInfo | null;
    /**
     * Add base template
     */
    addBaseOf(key: string, info: TemplateInfo): void;
    /**
     * Add template that needs base template
     */
    addNeedsBaseOf(key: string, info: TemplateInfo): void;
    /**
     * Check if path is a base template path
     */
    isBaseTemplatePath(filePath: string): boolean;
    /**
     * Check if template needs base template
     */
    needsBaseOf(name: string, rawContent: string): boolean;
    /**
     * Check if template doesn't need base template
     */
    private noBaseNeeded;
    /**
     * Check if template content needs base template
     * Returns true if the first non-comment template block is a define block
     */
    private needsBaseTemplate;
    /**
     * Get all base templates
     */
    getAllBaseOf(): Map<string, TemplateInfo>;
    /**
     * Get all templates that need base templates
     */
    getAllNeedsBaseOf(): Map<string, TemplateInfo>;
    /**
     * Clear all base template data
     */
    clear(): void;
    /**
     * Get statistics
     */
    getStats(): {
        baseOfCount: number;
        needsBaseOfCount: number;
    };
}
/**
 * Creates a new BaseOf instance
 */
export declare function newBaseOf(): BaseOf;
//# sourceMappingURL=baseof.d.ts.map