/**
 * Template Creator
 *
 * Creates templates from existing configuration files.
 * Provides variable extraction, metadata editing, and export.
 *
 * @since v1.69.1
 */
import type { ConfigTemplate, TemplateCategory, TemplateVariableType } from './template-types.js';
/**
 * Detected value that could become a variable
 */
export interface DetectedValue {
    file: string;
    line: number;
    key: string;
    value: string;
    suggestedName: string;
    suggestedType: TemplateVariableType;
    isSecret: boolean;
    confidence: number;
}
/**
 * Variable extraction options
 */
export interface ExtractionOptions {
    detectSecrets?: boolean;
    detectPaths?: boolean;
    detectUrls?: boolean;
    detectNumbers?: boolean;
    minConfidence?: number;
}
/**
 * Template creation options
 */
export interface CreateTemplateOptions {
    id: string;
    name: string;
    description?: string;
    author?: string;
    plugins: string[];
    category?: TemplateCategory;
    tags?: string[];
}
/**
 * Export format options
 */
export type ExportFormat = 'json' | 'yaml';
/**
 * Template creator service
 */
export declare class TemplateCreator {
    private options;
    constructor(options?: ExtractionOptions);
    /**
     * Extract potential variables from config content
     */
    extractVariables(fileName: string, content: string): DetectedValue[];
    /**
     * Create a template from files and selected variables
     */
    createTemplate(files: Array<{
        path: string;
        content: string;
    }>, variables: DetectedValue[], options: CreateTemplateOptions): ConfigTemplate;
    /**
     * Preview template with sample values
     */
    previewTemplate(template: ConfigTemplate, sampleValues?: Record<string, unknown>): Array<{
        path: string;
        content: string;
    }>;
    /**
     * Test template with values
     */
    testTemplate(template: ConfigTemplate, values: Record<string, unknown>): {
        valid: boolean;
        errors: string[];
    };
    /**
     * Export template to string
     */
    exportTemplate(template: ConfigTemplate, format?: ExportFormat): string;
    /**
     * Generate documentation for template
     */
    generateDocumentation(template: ConfigTemplate): string;
    private analyzeValue;
    private toVariableName;
    private generateLabel;
    private replaceWithPlaceholders;
    private generateSampleValues;
    private applyValues;
    private toYaml;
}
/**
 * Create a new template creator
 */
export declare function createTemplateCreator(options?: ExtractionOptions): TemplateCreator;
//# sourceMappingURL=template-creator.d.ts.map