/**
 * Opções para download de imagem
 */
export interface IImageDownloadOptions {
    /**
     * Tempo limite para o download em milissegundos
     * Default: 30000 (30 segundos)
     */
    timeout?: number;
    /**
     * Cabeçalhos HTTP personalizados para a requisição
     */
    headers?: Record<string, string>;
    /**
     * Tamanho máximo da imagem em bytes
     * Default: 10485760 (10MB)
     */
    maxSize?: number;
    /**
     * Se verdadeiro, ignora a validação da URL
     * Default: false
     */
    skipValidation?: boolean;
}
/**
 * Resultado do download de imagem
 */
export interface IImageDownloadResult {
    /**
     * Dados binários da imagem
     */
    data: Buffer;
    /**
     * Tipo MIME da imagem
     */
    mimeType: string;
    /**
     * Nome do arquivo extraído da URL
     */
    filename: string;
    /**
     * Tamanho da imagem em bytes
     */
    size: number;
}
/**
 * Serviço para download de imagens de URLs externas
 */
export declare class ImageDownloadService {
    private urlService;
    /**
     * Construtor do serviço
     */
    constructor();
    /**
     * Realiza o download de uma imagem a partir de uma URL
     * @param url URL da imagem
     * @param options Opções de download
     * @returns Resultado do download
     */
    downloadImage(url: string, options?: IImageDownloadOptions): Promise<IImageDownloadResult>;
    /**
     * Obtém a extensão de arquivo a partir do tipo MIME
     * @param mimeType Tipo MIME
     * @returns Extensão do arquivo sem o ponto
     */
    private getExtensionFromMimeType;
}
