import * as cfv2 from './curseforge-api-v2';
export interface HttpResult<T> {
    statusCode: number;
    data?: T;
    message?: string;
}
export interface CFV2ClientConfig {
    apiKey: string;
    headers?: {
        [key: string]: string;
    };
    apiUrl?: string;
    httpTimeoutMs?: number;
}
export declare class CFV2Client {
    private _apiKey;
    private _apiUrl;
    private _headers?;
    private _httpTimeoutMs;
    constructor(config: CFV2ClientConfig);
    getGames(index?: number, pageSize?: number): Promise<HttpResult<cfv2.CF2GetModDescriptionResponse>>;
    getGame(gameId: number): Promise<HttpResult<cfv2.CF2GetGameResponse>>;
    getGameVersions(gameId: number): Promise<HttpResult<cfv2.CF2GetVersionsResponse>>;
    getGameVersionTypes(gameId: number): Promise<HttpResult<cfv2.CF2GetVersionTypesResponse>>;
    getMod(modId: number): Promise<HttpResult<cfv2.CF2GetAddonResponse>>;
    getMods(req: cfv2.CF2GetModsRequest): Promise<HttpResult<cfv2.CF2GetModsResponse>>;
    getModDescription(modId: number): Promise<HttpResult<cfv2.CF2GetModDescriptionResponse>>;
    getFeaturedMods(req: cfv2.CF2GetFeaturedModsRequest): Promise<HttpResult<cfv2.CF2GetFeaturedModsResponse>>;
    searchMods(params: cfv2.CF2SearchModsParams): Promise<HttpResult<cfv2.CF2SearchModsResponse>>;
    getModFile(modId: number, fileId: number): Promise<HttpResult<cfv2.CF2GetModFileResponse>>;
    getModFiles(req: cfv2.CF2GetModFilesRequest): Promise<HttpResult<cfv2.CF2GetModFilesResponse>>;
    getFiles(pRequest: cfv2.CF2GetModFilesRequestBody): Promise<HttpResult<cfv2.CF2GetFilesResponse>>;
    getModFileChangelog(modId: number, fileId: number): Promise<HttpResult<cfv2.CF2GetModFileChangelogResponse>>;
    getModFileDownloadUrl(modId: number, fileId: number): Promise<HttpResult<cfv2.CF2GetModFileDownloadUrlResponse>>;
    getFingerprintMatches(pRequest: cfv2.CF2GetFingerprintMatchesRequest): Promise<HttpResult<cfv2.CF2GetFingerprintMatchesResponse>>;
    private cfGet;
    private cfPost;
    private getAuthHeaders;
}
