/**
 * Bukkit Source (CurseForge)
 *
 * Fetches plugin information from CurseForge using their API
 * Note: CurseForge API requires an API key
 * API Docs: https://docs.curseforge.com/
 */
import type { PluginInfo, SourceType } from '../types/index.js';
import { BasePluginSource } from './base.js';
/**
 * BukkitSource implementation using CurseForge API
 */
export declare class BukkitSource extends BasePluginSource {
    readonly id = "bukkit";
    readonly name = "CurseForge (Bukkit)";
    readonly type: SourceType;
    private static readonly API_BASE;
    private static readonly BUKKIT_GAME_ID;
    private apiKey;
    private minecraftVersion;
    /**
     * Set CurseForge API key (required)
     */
    setApiKey(key: string): void;
    /**
     * Set the target Minecraft version for filtering
     */
    setMinecraftVersion(version: string): void;
    /**
     * Check if the source is available (has API key)
     */
    isAvailable(): boolean;
    /**
     * Get plugin info by mod ID
     */
    getPluginInfo(modId: string): Promise<PluginInfo | null>;
    /**
     * Search for plugins
     */
    searchPlugins(query: string, limit?: number): Promise<PluginInfo[]>;
    /**
     * Get latest version for a mod
     */
    getLatestVersion(modId: string): Promise<string | null>;
    /**
     * Get files for a mod
     */
    private getModFiles;
    /**
     * Override headers to include CurseForge API key
     */
    protected buildHeaders(additional?: Record<string, string>): Record<string, string>;
    /**
     * Parse CurseForge mod into PluginInfo
     */
    private parseMod;
    /**
     * Extract version from file display name
     * CurseForge files often have names like "PluginName-1.2.3.jar"
     */
    private extractVersion;
}
//# sourceMappingURL=bukkit.d.ts.map