/**
 * Storage and conclusion module for CoConuT
 * Generates conclusions and explanations of changes made in the chain of thoughts
 */
import { ThoughtEntry, CoConuTConfig, SavedFileInfo, CoConuTStorageParams } from './types';
import { StorageProvider } from './storage';
/**
 * Classe responsável por gerar conclusões e salvar o histórico final de pensamentos
 */
export declare class CoConuT_Storage {
    private logger;
    private storageProvider;
    private config;
    private locale;
    private templates;
    private searchIndex;
    /**
     * Mensagens internacionalizadas do sistema
     */
    private i18n;
    constructor(storageProvider: StorageProvider, config: CoConuTConfig);
    /**
     * Método para traduzir mensagens
     * @param key Chave da mensagem no dicionário
     * @param replacements Substituições a serem feitas na mensagem
     * @returns A mensagem traduzida
     */
    private t;
    /**
     * Define o idioma a ser usado pelo sistema
     * @param locale Código do idioma (en, pt, etc)
     */
    setLocale(locale: string): void;
    /**
     * Registra templates padrão
     */
    private registerDefaultTemplates;
    /**
     * Registra um novo template
     * @param name Nome do template
     * @param template Template em formato de string com placeholders
     */
    registerTemplate(name: string, template: string): void;
    /**
     * Renderiza um template com os dados fornecidos
     * @param templateName Nome do template a ser renderizado
     * @param data Dados a serem inseridos no template
     * @returns Template renderizado
     */
    private renderTemplate;
    /**
     * Adiciona conteúdo ao índice de busca
     * @param id ID único da conclusão
     * @param content Conteúdo a ser indexado
     */
    private indexContent;
    /**
     * Busca conclusões no índice
     * @param query Query de busca
     * @returns Array de IDs de conclusões ordenados por relevância
     */
    searchConclusions(query: string): string[];
    /**
     * Gera uma conclusão e salva o histórico de pensamentos
     * @param thoughts Histórico de pensamentos para processar
     * @param projectPath Caminho do projeto onde os arquivos serão salvos
     * @param whyChange Motivo da mudança
     * @param whatChange Descrição da mudança
     * @param params Parâmetros adicionais opcionais
     * @returns Array com informações dos arquivos salvos
     */
    processConclusion(thoughts: ThoughtEntry[], projectPath: string, whyChange: string, whatChange: string, params?: Partial<CoConuTStorageParams>): Promise<SavedFileInfo[]>;
    /**
     * Automatically records a summary of the current interaction in the conclusion.md file
     * @param projectPath Project path where the files will be saved
     * @param interactionSummary An object containing information about the current interaction
     * @returns Information about the saved file or null in case of error
     */
    appendInteractionSummary(projectPath: string, interactionSummary: {
        thoughtNumber: number;
        totalThoughts: number;
        what: string;
        why: string;
    }): Promise<SavedFileInfo | null>;
    /**
     * Gera metadados para a conclusão a partir dos parâmetros fornecidos
     * @param thoughts Array de pensamentos (opcional)
     * @param params Parâmetros adicionais
     * @returns Objeto de metadados estruturado
     */
    private generateMetadata;
    /**
     * Formata a lista de arquivos afetados
     */
    private formatAffectedFiles;
    /**
     * Formata a lista de arquivos afetados em uma única linha
     */
    private formatAffectedFilesInline;
    /**
     * Formata as alternativas consideradas
     */
    private formatAlternatives;
    /**
     * Formata as conclusões relacionadas
     */
    private formatRelatedConclusions;
    /**
     * Formata os snippets de código
     */
    private formatCodeSnippets;
    /**
     * Salva a conclusão em um arquivo separado
     * @param conclusion Texto da conclusão a ser salva
     * @param projectPath Caminho do projeto onde o arquivo será salvo
     */
    private saveConclusion;
    /**
     * Adiciona texto ao arquivo de conclusão sem substituir o conteúdo existente
     * @param text Texto a ser adicionado ao arquivo de conclusão
     * @param projectPath Caminho do projeto onde o arquivo será salvo
     */
    private appendToConclusion;
    /**
     * Prepara e salva conteúdo no arquivo de conclusão
     * @param text Texto a ser salvo
     * @param projectPath Caminho do projeto onde salvar
     * @param isNewEntry Se é uma entrada nova (adiciona timestamp)
     * @returns Informações sobre o arquivo salvo ou null em caso de erro
     */
    private prepareAndSaveContent;
    /**
     * Generates a custom conclusion based on the provided parameters
     * @param whyChange Reason for the change
     * @param whatChange Description of the change
     * @param params Additional parameters
     * @returns Formatted conclusion string
     */
    private generateCustomConclusion;
    /**
     * Formata a seção de contexto
     */
    private formatContext;
}
//# sourceMappingURL=coconut-storage.d.ts.map