import { WordPressClient } from '../utils/WordPressClient';
import { IWordPressPostMetadata } from '../interfaces/WordPressInterfaces';
/**
 * Opções para a consulta de metadados SEO
 */
export interface ISeoQueryOptions {
    /**
     * Incluir FAQ
     * Default: true
     */
    includeFaq?: boolean;
    /**
     * Incluir CTA
     * Default: true
     */
    includeCta?: boolean;
    /**
     * Tratar como erro se o plugin não estiver disponível
     * Default: false
     */
    requirePlugin?: boolean;
}
/**
 * Resposta de versão do plugin
 */
interface IPluginVersionResponse {
    /**
     * Versão do plugin
     */
    version: string;
    /**
     * Recursos disponíveis
     */
    features?: string[];
    /**
     * Status do plugin
     */
    status: 'active' | 'inactive' | 'not_installed';
}
/**
 * Serviço para gerenciamento de metadados SEO
 */
export declare class SeoService {
    private client;
    private pluginEndpoint;
    private pluginAvailabilityChecked;
    private pluginAvailable;
    private pluginVersion;
    private pluginFeatures;
    /**
     * Construtor do serviço
     * @param client Cliente WordPress
     */
    constructor(client: WordPressClient);
    /**
     * Verifica se o plugin AI GROWTH - SEO WP está disponível
     * @param force Forçar verificação mesmo se já verificado
     * @returns Status do plugin
     */
    checkPluginAvailability(force?: boolean): Promise<IPluginVersionResponse>;
    /**
     * Obtém metadados SEO para um post específico
     * @param postId ID do post
     * @param options Opções da consulta
     * @returns Metadados SEO do post
     */
    getPostSeoMetadata(postId: number, options?: ISeoQueryOptions): Promise<IWordPressPostMetadata>;
    /**
     * Formata os dados de FAQ do plugin
     * @param faq Dados de FAQ da API
     * @returns FAQ formatado
     */
    private formatFaq;
    /**
     * Formata os dados de CTA do plugin
     * @param cta Dados de CTA da API
     * @returns CTA formatado
     */
    private formatCta;
    /**
     * Verifica se uma feature específica do plugin está disponível
     * @param featureName Nome da feature
     * @returns Se a feature está disponível
     */
    hasFeature(featureName: string): boolean;
    /**
     * Enriquece um post com metadados SEO
     * @param post Post a ser enriquecido
     * @param options Opções da consulta
     * @returns Post com metadados SEO
     */
    enrichPostWithSeo(post: Record<string, any>, options?: ISeoQueryOptions): Promise<Record<string, any>>;
    /**
     * Enriquece múltiplos posts com metadados SEO
     * @param posts Array de posts a serem enriquecidos
     * @param options Opções da consulta
     * @returns Posts com metadados SEO
     */
    enrichPostsWithSeo(posts: Record<string, any>[], options?: ISeoQueryOptions): Promise<Record<string, any>[]>;
}
export {};
