///
import { GithubOptions, ReleaseNoteInfo, UpdateInfo, XElement } from "builder-util-runtime";
import * as semver from "semver";
import { URL } from "url";
import { AppUpdater } from "../AppUpdater";
import { Provider, ResolvedUpdateFileInfo } from "../main";
import { ProviderRuntimeOptions } from "./Provider";
export interface customGithubOptions extends GithubOptions {
/**
* The update channel.
* @default false
*/
useAppSupportCache?: boolean;
}
export declare abstract class BaseGitHubProvider extends Provider {
protected readonly options: customGithubOptions;
protected readonly baseUrl: URL;
protected readonly baseApiUrl: URL;
protected constructor(options: customGithubOptions, defaultHost: string, runtimeOptions: ProviderRuntimeOptions);
protected computeGithubBasePath(result: string): string;
}
export declare class GitHubProvider extends BaseGitHubProvider {
protected readonly options: customGithubOptions;
private readonly updater;
constructor(options: customGithubOptions, updater: AppUpdater, runtimeOptions: ProviderRuntimeOptions);
getLatestVersion(): Promise;
private getLatestVersionString;
private get basePath();
resolveFiles(updateInfo: UpdateInfo): Array;
private getBaseDownloadPath;
}
export declare function computeReleaseNotes(currentVersion: semver.SemVer, isFullChangelog: boolean, feed: XElement, latestRelease: any): string | Array | null;