import { Options } from './options';
/**
 * Executa a criação dos componentes `Angular` gerados a partir dos arquivos
 * `markdown` encontrados no caminho de origem.
 */
export declare class Converter {
    private srcPath;
    private destDir;
    private options;
    constructor(srcPath?: string, destDir?: string, options?: Options);
    /**
     * Executa a conversão dos arquivos `markdown`.
     */
    execute(): void;
    /**
     * Executa a conversão do conteúdo `markdown` para `PO-UI`.
     *
     * @param markdown conteúdo `markdown`
     * @returns conteúdo convertido para `PO-UI`
     */
    convert(markdown: string): string;
    /**
     * Cria a página inicial com o menu dos componentes criados.
     */
    private createHomeFile;
    /**
     * Cria os arquivos do componente (classe e view) a partir da conversão do
     * arquivo `markdown`.
     *
     * @param component objeto com as informações do componente
     */
    private createComponentFiles;
    /**
     * Cria a pasta de destino dos arquivos de componente.
     *
     * @param destPath caminho relativo do diretório de destino
     * @returns caminho completo do diretório de destino criado
     */
    private createComponentDirectory;
    /**
     * Renderiza o conteúdo do componente a partir do _template_ e das
     * informações do componente informado.
     *
     * @param component objeto com as informações do componente
     * @returns conteúdo da classe do componente renderizado
     */
    private renderComponentClass;
    /**
     * Renderiza o conteúdo da _view_ do componente a partir do _template_ e das
     * informações do componente informado.
     *
     * @param component objeto com as informações do componente
     * @returns conteúdo da _view_ do componente renderizado
     */
    private renderComponentView;
    /**
     * Cria o arquivo do módulo `Angular` para agrupar todos os componentes
     * criados.
     *
     * @param components lista dos objetos com as informações dos componentes
     */
    private createModuleFile;
    /**
     * Cria o arquivo de roteamento `Angular` com o caminho de execução de todos
     * os componentes criados.
     *
     * @param components lista dos objetos com as informações dos componentes
     */
    private createRouterFile;
    /**
     * Cria o arquivo de serviço `Angular` com métodos que auxiliam na criação do
     * menu com a lista de todos os componentes criados.
     *
     * @param components lista dos objetos com as informações dos componentes
     */
    private createServiceFile;
    /**
     * Carrega a estrutura dos itens de menu conforme a lista dos componentes
     * e a configuração `options.flatDirs`.
     *
     * @param components lista dos objetos com as informações dos componentes
     * @returns estrutura dos itens de menu
     */
    private loadMenuItems;
    /**
     * Verifica os itens de menu e o componente informado e retorna o menu pai ao
     * qual ele pertence.
     *
     * @param menuItems estrutura dos itens de menu
     * @param components lista dos objetos com as informações dos componentes
     *
     * @returns estrutura do item de menu pai do componente informado
     */
    private getMenuParent;
    /**
     * Copia os arquivos externos encontrados no arquivo `markdown` para o
     * diretório de recursos configurado.
     *
     * @param srcDir diretório de origem do arquivo `markdown` atual
     * @param destDir diretório de destino onde serão criados os componentes
     * @param files lista dos arquivos externos encontrados no arquivo `markdown`
     */
    private copyFiles;
    /**
     * Retorna a lista de arquivos `markdown` encontrados abaixo da pasta
     * informada de forma recursiva ou não.
     *
     * @param searchPath caminho de busca de arquivos `markdown`
     * @returns lista dos arquivos `markdown` encontrados
     */
    private getMarkdownFiles;
    private writeFile;
}
