/// import { Arch, ArchType } from "builder-util"; import { Publish } from "builder-util-runtime"; export declare type TargetConfigType = Array | string | TargetConfiguration | null; export interface TargetConfiguration { /** * The target name. e.g. `snap`. */ readonly target: string; /** * The arch or list of archs. */ readonly arch?: Array | ArchType; } export declare class Platform { name: string; buildConfigurationKey: string; nodeName: NodeJS.Platform; static MAC: Platform; static LINUX: Platform; static WINDOWS: Platform; constructor(name: string, buildConfigurationKey: string, nodeName: NodeJS.Platform); toString(): string; createTarget(type?: string | Array | null, ...archs: Array): Map>>; static current(): Platform; static fromString(name: string): Platform; } export declare abstract class Target { readonly name: string; readonly isAsyncSupported: boolean; abstract readonly outDir: string; abstract readonly options: TargetSpecificOptions | null | undefined; protected constructor(name: string, isAsyncSupported?: boolean); protected logBuilding(targetPresentableName: string, artifactPath: string, arch: Arch): void; checkOptions(): Promise; abstract build(appOutDir: string, arch: Arch): Promise; finishBuild(): Promise; } export interface TargetSpecificOptions { /** The [artifact file name template](/configuration/configuration.md#artifact-file-name-template). */ readonly artifactName?: string | null; publish?: Publish; } export declare const DEFAULT_TARGET = "default"; export declare const DIR_TARGET = "dir"; export declare type CompressionLevel = "store" | "normal" | "maximum"; export interface BeforeBuildContext { readonly appDir: string; readonly electronVersion: string; readonly platform: Platform; readonly arch: string; } export interface SourceRepositoryInfo { type?: string; domain?: string; user: string; project: string; }