/**
 * @author NovaStepStudios
 * @alias StepnickaSantiago
 * @license Apache-2.0
 * @link https://www.apache.org/licenses/LICENSE-2.0
 */
import { Readable } from 'stream';
import { ZipEntry } from './Unzipper.js';
export interface LibraryRule {
    action: 'allow' | 'disallow';
    os?: {
        name?: string;
    };
    features?: any;
}
export interface MinecraftLibrary {
    name: string;
    rules?: LibraryRule[];
    downloads?: {
        artifact?: {
            url?: string;
            size?: number;
        };
    };
    natives?: Record<string, string>;
    [key: string]: any;
}
export interface MinecraftVersionJSON {
    assets?: string;
    [key: string]: any;
}
export declare function getPathLibraries(main: string, nativeString?: string, forceExt?: string): {
    path: string;
    name: string;
    version: string;
};
export declare function getFileHash(filePath: string, algorithm?: string): Promise<string>;
export declare function isOldVersion(json: MinecraftVersionJSON): boolean;
export declare function loader(type: string): any;
export declare const mirrors: string[];
export declare function getFileFromArchive(jar: string, file?: string | null, prefix?: string | null): Promise<Buffer | ZipEntry[] | undefined>;
export declare function skipLibrary(lib: MinecraftLibrary): boolean;
export declare function fromAnyReadable(webStream: ReadableStream<Uint8Array>): Readable;
