import { WordPressClient } from '../utils/WordPressClient';
import { IWordPressPost, ITaxonomyItem } from '../interfaces/WordPressInterfaces';
/**
 * Opções para consulta de conteúdo
 */
export interface IContentQueryOptions {
    /**
     * Número da página para resultados paginados
     * Default: 1
     */
    page?: number;
    /**
     * Quantidade de itens por página
     * Default: 10
     */
    perPage?: number;
    /**
     * Status do conteúdo a ser consultado
     * Default: 'publish'
     */
    status?: string;
    /**
     * Filtro por termo de busca
     */
    search?: string;
    /**
     * Filtro por categorias (IDs)
     */
    categories?: number[];
    /**
     * Filtro por tags (IDs)
     */
    tags?: number[];
    /**
     * Incluir metadados do AI GROWTH - SEO WP
     * Default: false
     */
    includeSeoMetadata?: boolean;
    /**
     * Incluir FAQs do AI GROWTH - SEO WP
     * Default: false
     */
    includeFaqs?: boolean;
    /**
     * Incluir CTA do AI GROWTH - SEO WP
     * Default: false
     */
    includeCta?: boolean;
}
/**
 * Serviço para gerenciamento de conteúdo do WordPress
 */
export declare class ContentService {
    private client;
    private seoService;
    private faqService;
    private ctaService;
    private parameterSupportCache;
    /**
     * Construtor do serviço
     * @param client Cliente WordPress
     */
    constructor(client: WordPressClient);
    /**
     * Valida se um endpoint está disponível antes de fazer a requisição
     * @param endpoint Endpoint a ser validado
     * @param method Método HTTP (padrão: GET)
     * @returns True se o endpoint estiver disponível
     */
    private validateEndpointAvailability;
    /**
     * Testa se um endpoint suporta parâmetros específicos
     * @param endpoint Endpoint a ser testado
     * @param parameters Parâmetros a serem testados
     * @returns True se os parâmetros são suportados
     */
    private testParameterSupport;
    /**
     * Filtra posts no lado do cliente quando a filtragem no servidor falha
     * @param posts Posts a serem filtrados
     * @param categories IDs das categorias para filtrar
     * @param tags IDs das tags para filtrar
     * @returns Posts filtrados
     */
    private filterPostsClientSide;
    /**
     * Cria uma mensagem de erro amigável quando um endpoint não está disponível
     * @param endpoint Endpoint que não foi encontrado
     * @param method Método HTTP
     * @returns Mensagem de erro
     */
    private createEndpointNotAvailableError;
    /**
     * Obtém posts do WordPress
     * @param options Opções da consulta
     * @returns Array de posts
     */
    getPosts(options?: IContentQueryOptions): Promise<IWordPressPost[]>;
    /**
     * Obtém páginas do WordPress
     * @param options Opções da consulta
     * @returns Array de páginas
     */
    getPages(options?: IContentQueryOptions): Promise<IWordPressPost[]>;
    /**
     * Obtém um post específico pelo ID
     * @param id ID do post
     * @param options Opções da consulta
     * @returns Post ou null se não encontrado
     */
    getPost(id: number, options?: IContentQueryOptions): Promise<IWordPressPost | null>;
    /**
     * Obtém uma página específica pelo ID
     * @param id ID da página
     * @param options Opções da consulta
     * @returns Página ou null se não encontrada
     */
    getPage(id: number, options?: IContentQueryOptions): Promise<IWordPressPost | null>;
    /**
     * Obtém categorias do WordPress
     * @param options Opções da consulta
     * @returns Array de categorias
     */
    getCategories(options?: IContentQueryOptions): Promise<ITaxonomyItem[]>;
    /**
     * Obtém tags do WordPress
     * @param options Opções da consulta
     * @returns Array de tags
     */
    getTags(options?: IContentQueryOptions): Promise<ITaxonomyItem[]>;
    /**
     * Enriquece os posts com metadados do AI GROWTH - SEO WP
     * @param posts Posts a serem enriquecidos
     * @param options Opções de enriquecimento
     * @returns Posts enriquecidos
     */
    private enrichPosts;
}
