declare module "electron-builder-publisher/out/multiProgress" { export class MultiProgress { private readonly stream private cursor private totalLines private isLogListenerAdded private barCount createBar(format: string, options: any): any private allocateLines(count) private moveCursor(index) terminate(): void } } declare module "electron-builder-publisher" { /// import { ClientRequest } from "http" import { Stats } from "fs-extra-p" import ProgressBar from "progress-ex" import { MultiProgress } from "electron-builder-publisher/out/multiProgress" import { CancellationToken } from "electron-builder-http/out/CancellationToken" export type PublishPolicy = "onTag" | "onTagOrDraft" | "always" | "never" export interface PublishOptions { publish?: PublishPolicy | null draft?: boolean prerelease?: boolean } export interface PublishContext { readonly cancellationToken: CancellationToken readonly progress: MultiProgress | null } export abstract class Publisher { protected readonly context: PublishContext constructor(context: PublishContext) readonly abstract providerName: string abstract upload(file: string, safeArtifactName?: string): Promise protected createProgressBar(fileName: string, fileStat: Stats): ProgressBar | null protected createReadStreamAndProgressBar(file: string, fileStat: Stats, progressBar: ProgressBar | null, reject: (error: Error) => void): NodeJS.ReadableStream abstract toString(): string } export abstract class HttpPublisher extends Publisher { protected readonly context: PublishContext private readonly useSafeArtifactName constructor(context: PublishContext, useSafeArtifactName?: boolean) upload(file: string, safeArtifactName?: string): Promise uploadData(data: Buffer, fileName: string): Promise protected abstract doUpload(fileName: string, dataLength: number, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void, file?: string): Promise } } declare module "electron-builder-publisher/out/BintrayPublisher" { /// import { BintrayOptions } from "electron-builder-http/out/publishOptions" import { ClientRequest } from "http" import { HttpPublisher, PublishContext, PublishOptions } from "electron-builder-publisher" export class BintrayPublisher extends HttpPublisher { private readonly version private readonly options private _versionPromise private readonly client readonly providerName: string constructor(context: PublishContext, info: BintrayOptions, version: string, options?: PublishOptions) private init() protected doUpload(fileName: string, dataLength: number, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void): Promise deleteRelease(): Promise toString(): string } } declare module "electron-builder-publisher/out/gitHubPublisher" { /// import { GithubOptions } from "electron-builder-http/out/publishOptions" import { ClientRequest } from "http" import { HttpPublisher, PublishContext, PublishOptions } from "electron-builder-publisher" export interface Release { id: number tag_name: string draft: boolean prerelease: boolean published_at: string upload_url: string } export class GitHubPublisher extends HttpPublisher { private readonly info private readonly version private readonly options private tag private _releasePromise private readonly token readonly providerName: string readonly releasePromise: Promise constructor(context: PublishContext, info: GithubOptions, version: string, options?: PublishOptions) private getOrCreateRelease() protected doUpload(fileName: string, dataLength: number, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void): Promise private createRelease() getRelease(): Promise deleteRelease(): Promise private githubRequest(path, token, data?, method?) toString(): string } }