/**
 * JAR Scanner
 *
 * Extracts plugin metadata from Minecraft plugin JAR files by reading plugin.yml
 */
import type { ScanProgressCallback, ScannedPlugin } from './types/index.js';
/**
 * Scan a single JAR file and extract plugin metadata
 */
export declare function scanJar(jarPath: string): Promise<ScannedPlugin>;
/**
 * Scan all JAR files in a directory
 */
export declare function scanDirectory(pluginsPath: string, onProgress?: ScanProgressCallback): Promise<ScannedPlugin[]>;
/**
 * Find a plugin by name in a list of scanned plugins
 */
export declare function findPluginByName(plugins: ScannedPlugin[], name: string): ScannedPlugin | undefined;
/**
 * Get authors as a comma-separated string
 */
export declare function getAuthorsString(plugin: ScannedPlugin): string;
/**
 * Get dependencies as a comma-separated string
 */
export declare function getDependenciesString(plugin: ScannedPlugin): string;
/**
 * Check if a JAR filename matches a pattern
 * Uses escaped pattern to prevent ReDoS attacks (v2.0.0)
 */
export declare function matchesFilenamePattern(filename: string, pattern: string): boolean;
/**
 * Find a plugin's JAR file in a directory by plugin name
 * Returns the full path and whether it's currently disabled
 *
 * @since v1.51.7
 */
export declare function findPluginJar(pluginsPath: string, pluginName: string): Promise<{
    path: string;
    filename: string;
    disabled: boolean;
} | null>;
/**
 * Disable a plugin by renaming its JAR file to .jar.disabled
 *
 * @since v1.51.7
 */
export declare function disablePluginJar(pluginsPath: string, pluginName: string): Promise<boolean>;
/**
 * Enable a plugin by renaming its .jar.disabled file back to .jar
 *
 * @since v1.51.7
 */
export declare function enablePluginJar(pluginsPath: string, pluginName: string): Promise<boolean>;
/**
 * Find the server JAR file in a server directory
 *
 * @param serverPath - Path to the plugins directory or server root
 * @returns Full path to the server JAR or null if not found
 * @since v1.50.5
 */
export declare function findServerJar(serverPath: string): Promise<string | null>;
//# sourceMappingURL=scanner.d.ts.map