import { JsonObject } from './utils/http_utils'; import { ProviderClass, ProviderConfig, ProviderInterface } from './provider'; export declare class Chromium extends ProviderClass implements ProviderInterface { cacheFileName: string; cacheVersionFileName: string; cacheStorageFileName: string; compressedBinaryFileName: string; configFileName: string; ignoreSSL: boolean; osType: string; osArch: string; outDir: string; proxy: string; constructor(config?: ProviderConfig); private makeDirectory; /** * Step 1: Download the json file that contains all the releases by OS. Each * OS will have a list of release versions. The requested body will also be * written to the out directory. * * The requested url is https://omahaproxy.appspot.com/all.json. Some other * urls include a timestamped csv https://omahaproxy.appspot.com/history. * @return Promise of the all-json file. */ downloadAllJson(): Promise; /** * Step 2: From the all-json object, make a request that matches the major * version requested. The requested body will also be written to file in the * out directory. * * An example of a requsted url is * https://omahaproxy.appspot.com/deps.json?version=72.0.3626.81 * @param allJson The all-json object. * @param majorVersion The major version, this must be a whole number. */ downloadVersionJson(allJson: JsonObject, majorVersion: string): Promise; /** * Step 3: From the downloaded-version-json object, get the revision number. * This is the "chromium_base_position" and make a request to the storage * bucket. If the returned value is {"kind": "storage#objects"}, then * decrement the revision number. * * An example is the chromium_base_position revision number (612437). * https://www.googleapis.com/storage/v1/b/chromium-browser-snapshots/o?delimiter=/&prefix=Linux_x64/612437/ * returns {"kind": "storage#objects"}. * * We keep decrementing the number until we reach 612434 where there is a list * of items. * @param downloadJson The download-version-json object. * @param majorVersion The major version, this must be a whole number. */ downloadStorageObject(downloadJson: JsonObject, majorVersion: string): Promise; /** * Step 4: Get the download url for the chromium zip. Unzipping the zip file * directory. The folders and binaries uncompressed are different for each OS. * The following is examples of each OS: * * downloads/ * |- chrome-linux/chrome * |- chrome-mac/Chromium.app * |- chrome-win/chrome.exe * * @param storageObject The download-storage-json object * @param majorVersion The major version, this must be a whole number. */ downloadUrl(storageObject: JsonObject, majorVersion: string): Promise; updateBinary(majorVersion?: string): Promise; getBinaryPath(version?: string): string | null; getStatus(): string | null; cleanFiles(): string; } /** * Helps translate the os type and arch to the download name associated * with composing the download link. * @param ostype The operating stystem type. * @param osarch The chip architecture. * @returns The download name associated with composing the download link. */ export declare function osHelper(ostype: string, osarch: string): string;