import { WordPressClient } from '../utils/WordPressClient';
import { IImageMetadata, IWordPressImage } from '../interfaces/WordPressInterfaces';
import { IMediaUploadOptions } from './MediaUploadService';
/**
 * Opções para definir a imagem destacada
 */
export interface ISetFeaturedImageOptions {
    /**
     * Metadados da imagem
     */
    metadata?: IImageMetadata;
    /**
     * Opções para upload da imagem
     */
    uploadOptions?: IMediaUploadOptions;
}
/**
 * Tipo de conteúdo WordPress
 */
export type WordPressContentType = 'post' | 'page' | 'product';
/**
 * Serviço para gerenciar imagens destacadas e metadados de imagens
 */
export declare class FeaturedImageService {
    private client;
    private mediaService;
    /**
     * Construtor do serviço
     * @param client Cliente WordPress
     */
    constructor(client: WordPressClient);
    /**
     * Define a imagem destacada para um conteúdo a partir de uma URL de imagem
     * @param contentId ID do conteúdo (post, página, etc.)
     * @param contentType Tipo de conteúdo
     * @param imageUrl URL da imagem
     * @param options Opções adicionais
     * @returns Conteúdo atualizado
     */
    setFeaturedImageFromUrl(contentId: number, contentType: WordPressContentType, imageUrl: string, options?: ISetFeaturedImageOptions): Promise<any>;
    /**
     * Define a imagem destacada para um conteúdo a partir de um ID de mídia existente
     * @param contentId ID do conteúdo (post, página, etc.)
     * @param contentType Tipo de conteúdo
     * @param mediaId ID da mídia na biblioteca do WordPress
     * @returns Conteúdo atualizado
     */
    setFeaturedImage(contentId: number, contentType: WordPressContentType, mediaId: number): Promise<any>;
    /**
     * Remove a imagem destacada de um conteúdo
     * @param contentId ID do conteúdo (post, página, etc.)
     * @param contentType Tipo de conteúdo
     * @returns Conteúdo atualizado
     */
    removeFeaturedImage(contentId: number, contentType: WordPressContentType): Promise<any>;
    /**
     * Obtém a imagem destacada de um conteúdo
     * @param contentId ID do conteúdo (post, página, etc.)
     * @param contentType Tipo de conteúdo
     * @returns Imagem destacada ou null se não houver
     */
    getFeaturedImage(contentId: number, contentType: WordPressContentType): Promise<IWordPressImage | null>;
    /**
     * Verifica se um conteúdo existe
     * @param contentId ID do conteúdo
     * @param contentType Tipo de conteúdo
     * @returns Conteúdo se existir
     */
    private checkContentExists;
    /**
     * Obtém o endpoint da API para o tipo de conteúdo
     * @param contentType Tipo de conteúdo
     * @returns Endpoint da API
     */
    private getEndpointForContentType;
    /**
     * Capitaliza a primeira letra do tipo de conteúdo
     * @param contentType Tipo de conteúdo
     * @returns Tipo de conteúdo com primeira letra maiúscula
     */
    private capitalizeContentType;
}
