import { Downloader } from './Downloader'; export declare type DownloadOptions = any; export interface MirrorOptions { /** * DEPRECATED - see nightlyMirror. */ nightly_mirror?: string; /** * The Electron nightly-specific mirror URL. */ nightlyMirror?: string; /** * The base URL of the mirror to download from, * e.g https://github.com/electron/electron/releases/download */ mirror?: string; /** * The name of the directory to download from, * often scoped by version number e.g 'v4.0.4' */ customDir?: string; /** * The name of the asset to download, * e.g 'electron-v4.0.4-linux-x64.zip' */ customFilename?: string; /** * A function allowing customization of the url returned * from getArtifactRemoteURL(). */ resolveAssetURL?: (opts: DownloadOptions) => Promise; } export interface ElectronDownloadRequest { /** * The version of Electron associated with the artifact. */ version: string; /** * The type of artifact. For example: * * `electron` * * `ffmpeg` */ artifactName: string; } export interface ElectronDownloadRequestOptions { /** * Whether to download an artifact regardless of whether it's in the cache directory. * * Defaults to `false`. */ force?: boolean; /** * When set to `true`, disables checking that the artifact download completed successfully * with the correct payload. * * Defaults to `false`. */ unsafelyDisableChecksums?: boolean; /** * Provides checksums for the artifact as strings. * Can be used if you already know the checksums of the Electron artifact * you are downloading and want to skip the checksum file download * without skipping the checksum validation. * * This should be an object whose keys are the file names of the artifacts and * the values are their respective SHA256 checksums. */ checksums?: Record; /** * The directory that caches Electron artifact downloads. * * The default value is dependent upon the host platform: * * * Linux: `$XDG_CACHE_HOME` or `~/.cache/electron/` * * MacOS: `~/Library/Caches/electron/` * * Windows: `%LOCALAPPDATA%/electron/Cache` or `~/AppData/Local/electron/Cache/` */ cacheRoot?: string; /** * Options passed to the downloader module. */ downloadOptions?: DownloadOptions; /** * Options related to specifying an artifact mirror. */ mirrorOptions?: MirrorOptions; /** * The custom [[Downloader]] class used to download artifacts. Defaults to the * built-in [[GotDownloader]]. */ downloader?: Downloader; /** * A temporary directory for downloads. * It is used before artifacts are put into cache. */ tempDirectory?: string; } export declare type ElectronPlatformArtifactDetails = { /** * The target artifact platform. These are Node-style platform names, for example: * * `win32` * * `darwin` * * `linux` */ platform: string; /** * The target artifact architecture. These are Node-style architecture names, for example: * * `ia32` * * `x64` * * `armv7l` */ arch: string; artifactSuffix?: string; isGeneric?: false; } & ElectronDownloadRequest & ElectronDownloadRequestOptions; export declare type ElectronGenericArtifactDetails = { isGeneric: true; } & ElectronDownloadRequest & ElectronDownloadRequestOptions; export declare type ElectronArtifactDetails = ElectronPlatformArtifactDetails | ElectronGenericArtifactDetails; export declare type Omit = Pick>; export declare type ElectronPlatformArtifactDetailsWithDefaults = (Omit & { platform?: string; arch?: string; }) | ElectronGenericArtifactDetails;