/**
 * プロンプトテンプレート管理ユーティリティ
 */
import type { PromptTemplate } from '../types/template.js';
/**
 * テンプレート保存ディレクトリを取得
 * 優先順位:
 * 1. 環境変数 VERTEXAI_IMAGEN_TEMPLATES_DIR
 * 2. 画像出力先フォルダ配下 [VERTEXAI_IMAGEN_OUTPUT_DIR]/templates (デフォルト)
 * 3. プロジェクトレベル ./templates
 * 4. ユーザーレベル ~/.vertexai-imagen/templates
 */
export declare function getTemplateDirectory(): string;
/**
 * テンプレートファイル名のサニタイゼーション
 * パストラバーサル攻撃を防ぐため、英数字・ハイフン・アンダースコアのみ許可
 */
export declare function sanitizeTemplateName(name: string): string;
/**
 * テンプレートファイルのパスを取得
 * 複数のディレクトリを検索
 * 優先順位:
 * 1. 環境変数 VERTEXAI_IMAGEN_TEMPLATES_DIR
 * 2. 画像出力先フォルダ配下 [VERTEXAI_IMAGEN_OUTPUT_DIR]/templates
 * 3. プロジェクトレベル ./templates
 * 4. ユーザーレベル ~/.vertexai-imagen/templates
 */
export declare function getTemplateFilePath(templateName: string): Promise<string | null>;
/**
 * テンプレート文字列から変数を抽出
 * パターン: {variable_name}
 */
export declare function extractVariables(template: string): string[];
/**
 * テンプレート文字列に変数を置換
 */
export declare function substituteVariables(template: string, values: Record<string, string>): string;
/**
 * 必須変数がすべて提供されているかチェック
 */
export declare function validateVariables(template: string, providedValues: Record<string, string>): {
    valid: boolean;
    missing: string[];
};
/**
 * テンプレートを保存
 */
export declare function saveTemplate(template: PromptTemplate): Promise<void>;
/**
 * テンプレートを読み込み
 */
export declare function loadTemplate(templateName: string): Promise<PromptTemplate | null>;
/**
 * テンプレートを削除
 */
export declare function deleteTemplate(templateName: string): Promise<boolean>;
/**
 * テンプレート一覧を取得
 * 複数のディレクトリを検索
 * 優先順位:
 * 1. 環境変数 VERTEXAI_IMAGEN_TEMPLATES_DIR
 * 2. 画像出力先フォルダ配下 [VERTEXAI_IMAGEN_OUTPUT_DIR]/templates
 * 3. プロジェクトレベル ./templates
 * 4. ユーザーレベル ~/.vertexai-imagen/templates
 */
export declare function listTemplates(options?: {
    tags?: string[];
    search?: string;
}): Promise<PromptTemplate[]>;
/**
 * テンプレートを更新
 */
export declare function updateTemplate(templateName: string, updates: Partial<PromptTemplate>): Promise<PromptTemplate>;
//# sourceMappingURL=templateManager.d.ts.map