import { ICredentialDataDecryptedObject, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
import { ICreatePostParams, IDeletePostParams, IGetAllPostsParams, IGetPostParams, IUpdatePostParams, WordPressOperation, WordPressResource } from '../interfaces/NodeInterfaces';
import { WordPressClient } from '../utils/WordPressClient';
/**
 * Serviço para executar operações do nó WordPress
 */
export declare class NodeService {
    private execFunctions;
    private client;
    private contentService;
    private postCreateService;
    private taxonomyService;
    private mediaService;
    private featuredImageService;
    /**
     * Construtor do serviço
     * @param execFunctions Funções de execução do n8n
     * @param credentials Credenciais do WordPress
     */
    constructor(execFunctions: IExecuteFunctions, credentials: ICredentialDataDecryptedObject);
    /**
     * Obtém o cliente WordPress para acesso direto
     * @returns Cliente WordPress
     */
    getClient(): WordPressClient;
    /**
     * Executa uma operação de post/página
     * @param params Parâmetros da operação
     * @param resource Tipo de recurso (post ou page)
     * @param operation Operação a ser realizada
     * @returns Dados resultantes da operação
     */
    executeOperation(params: ICreatePostParams | IUpdatePostParams | IGetPostParams | IGetAllPostsParams | IDeletePostParams, resource: WordPressResource, operation: WordPressOperation): Promise<any>;
    /**
     * Converte parâmetros do nó para o formato da API WordPress
     * @param params Parâmetros do nó
     * @returns Parâmetros formatados para a API
     */
    private convertToWordPressPost;
    /**
     * Cria um novo post/página
     * @param params Parâmetros de criação
     * @param resource Tipo de recurso (post ou page)
     * @returns Recurso criado
     */
    private createResource;
    /**
     * Atualiza um post/página existente
     * @param params Parâmetros de atualização
     * @param resource Tipo de recurso (post ou page)
     * @returns Recurso atualizado
     */
    private updateResource;
    /**
     * Obtém um post/página específico
     * @param params Parâmetros da consulta
     * @param resource Tipo de recurso (post ou page)
     * @returns Recurso obtido
     */
    private getResource;
    /**
     * Obtém múltiplos posts/páginas
     * @param params Parâmetros da consulta
     * @param resource Tipo de recurso (post ou page)
     * @returns Lista de recursos
     */
    private getAllResources;
    /**
     * Exclui um post/página
     * @param params Parâmetros de exclusão
     * @param resource Tipo de recurso (post ou page)
     * @returns true se excluído com sucesso
     */
    private deleteResource;
    /**
     * Converte um único resultado em formato de nó n8n
     * @param result Resultado da operação
     * @returns Dados formatados para o n8n
     */
    formatSingleOutput(result: any): INodeExecutionData[];
    /**
     * Extrai nomes das taxonomias (categorias/tags) dos dados
     * @param taxonomyData Dados das taxonomias
     * @returns Array com os nomes
     */
    private extractTaxonomyNames;
    /**
     * Converte múltiplos resultados em formato de nó n8n
     * @param results Lista de resultados
     * @returns Dados formatados para o n8n
     */
    formatMultipleOutput(results: any[]): INodeExecutionData[];
    /**
     * Converte resultado booleano em formato de nó n8n
     * @param success Resultado da operação
     * @param id ID do recurso (opcional)
     * @returns Dados formatados para o n8n
     */
    formatBooleanOutput(success: boolean, id?: number): INodeExecutionData[];
    /**
     * Remove tags HTML de uma string
     * @param html String HTML
     * @returns Texto sem HTML
     */
    private stripHtml;
    /**
     * Obtém o label do status para exibição
     * @param status Status do WordPress
     * @returns Label formatado
     */
    private getStatusLabel;
}
