import { HTTP } from "@rubybb/http";
import { Cache } from "./cache";
import { UploadFile, Version } from "./models/Version";
import { User } from "./models/User";
import { Mod } from "./models/Mod";
export interface Options {
    authorization: string;
    cache: number | false;
    debug: boolean;
    url: string;
    api: string;
    cdn: string;
}
export declare class Modrinth {
    static version: string;
    static get defaultOptions(): Partial<Options>;
    options: Partial<Options>;
    /** @internal */
    cache: Cache;
    /** @internal */
    api: HTTP;
    constructor(options?: Partial<Options>);
    get apiURL(): string;
    get cdnURL(): string;
    get siteURL(): string;
    get useCache(): boolean;
    login(token: string): void;
    self(): Promise<User | null>;
    currentUser(): Promise<User | null>;
    user(id: string): Promise<User>;
    users(id: string[]): Promise<User[]>;
    users(...id: string[]): Promise<User[]>;
    mod(id: string): Promise<Mod>;
    mods(id: string[]): Promise<Mod[]>;
    mods(...id: string[]): Promise<Mod[]>;
    version(id: string): Promise<Version>;
    versions(id: string[]): Promise<Version[]>;
    versions(...id: string[]): Promise<Version[]>;
    createVersion(mod_id: string, data: any, files: UploadFile[]): Promise<Version>;
}
