/**
 * TemplateManager - Refactored to extend BaseElementManager, keeping
 * template-specific validation, import/export logic, and analytics helpers.
 */
import { FileLockManager } from '../../security/fileLockManager.js';
import { BaseElementManager } from '../base/BaseElementManager.js';
import { Template, TemplateMetadata } from './Template.js';
import { PortfolioManager } from '../../portfolio/PortfolioManager.js';
import { ValidationRegistry } from '../../services/validation/ValidationRegistry.js';
import { SerializationService } from '../../services/SerializationService.js';
import { MetadataService } from '../../services/MetadataService.js';
import { FileOperationsService } from '../../services/FileOperationsService.js';
import { FileWatchService } from '../../services/FileWatchService.js';
export declare class TemplateManager extends BaseElementManager<Template> {
    private metadataService;
    private triggerValidationService;
    private validationService;
    private serializationService;
    constructor(portfolioManager: PortfolioManager, fileLockManager: FileLockManager, fileOperationsService: FileOperationsService, validationRegistry: ValidationRegistry, serializationService: SerializationService, metadataService: MetadataService, fileWatchService?: FileWatchService, memoryBudget?: import('../../cache/CacheMemoryBudget.js').CacheMemoryBudget, backupService?: import('../../services/BackupService.js').BackupService);
    protected getElementLabel(): string;
    load(filePath: string): Promise<Template>;
    save(template: Template, filePath: string): Promise<void>;
    delete(filePath: string): Promise<void>;
    create(data: {
        name: string;
        description: string;
        content?: string;
        instructions?: string;
        metadata?: Partial<TemplateMetadata>;
    }): Promise<Template>;
    importElement(data: string, format?: 'json' | 'yaml' | 'markdown'): Promise<Template>;
    exportElement(template: Template, format?: 'json' | 'yaml' | 'markdown'): Promise<string>;
    findByCategory(category: string): Promise<Template[]>;
    findByTag(tag: string): Promise<Template[]>;
    getMostUsed(limit?: number): Promise<Template[]>;
    getFileExtension(): string;
    protected parseMetadata(data: any): Promise<TemplateMetadata>;
    protected createElement(metadata: TemplateMetadata, bodyContent: string): Template;
    private buildDefaultBody;
    protected serializeElement(template: Template): Promise<string>;
    private sanitizeMetadata;
}
//# sourceMappingURL=TemplateManager.d.ts.map