import EventEmitter from 'node:events';
import type { FSWatcher } from 'chokidar';
import type { ProcessedTemplateResult, TemplateStatus } from '../types.js';
declare global {
    var __srtd_watchers: FSWatcher[];
}
export declare class TemplateManager extends EventEmitter implements Disposable {
    private watcher;
    private baseDir;
    private buildLog;
    private localBuildLog;
    private config;
    private templateCache;
    private cacheTimeout;
    private silent;
    private processQueue;
    private processingTemplate;
    private processing;
    private constructor();
    [Symbol.dispose](): void;
    static create(baseDir: string, options?: {
        silent?: boolean;
    }): Promise<TemplateManager>;
    private isCacheValid;
    private invalidateCache;
    findTemplates(): Promise<string[]>;
    getTemplateStatus(templatePath: string): Promise<TemplateStatus>;
    private saveBuildLogs;
    private handleTemplateChange;
    private processTemplate;
    private processNextTemplate;
    watch(): Promise<{
        close: () => Promise<void>;
    }>;
    applyTemplate(templatePath: string): Promise<ProcessedTemplateResult>;
    buildTemplate(templatePath: string, force?: boolean): Promise<void>;
    private log;
    processTemplates(options: {
        apply?: boolean;
        generateFiles?: boolean;
        force?: boolean;
    }): Promise<ProcessedTemplateResult>;
}
