import { ExtraFileReference, FilePath, IAppBuilderLib } from "./desktopify"; export declare type IUploadFileStatus = "error" | "success" | "done" | "uploading" | "removed"; export interface IUploadFile { uid: string; size: number; name: string; fileName?: string; lastModified?: number; lastModifiedDate?: Date; url?: string; status?: IUploadFileStatus; percent?: number; thumbUrl?: string; originFileObj?: File; response?: any; error?: any; linkProps?: any; type: string; } export interface IHueIcon extends IUploadFile { hueAdjustment?: number; } export interface IAppIcon { appId: string; icon: IHueIcon; } export declare type IAppIcons = IAppIcon[]; export interface IAppWindowOptions { startInFullscreenMode: boolean; isResizable: boolean; width: number; height: number; hasMinWidth: boolean; hasMinHeight: boolean; hasMaxWidth: boolean; hasMaxHeight: boolean; minWidth: number; minHeight: number; maxWidth: number; maxHeight: number; isMaximizable: boolean; isMinimizable: boolean; transparentTitlebar: boolean; alwaysOnTop: boolean; transparentInsetTitlebar: boolean; } export declare type ProgressTypes = "progress" | "done" | "error"; export interface IWindowOptions { isAlwaysOnTop?: boolean; isMaximizable: boolean; isMinimizable: boolean; isResizable: boolean; isInsetTitlebarTransparent?: boolean; isTitlebarTransparent?: boolean; isFullScreenStartEnabled?: boolean; width: number; height: number; maxHeight?: ISwitchableValue; minHeight?: ISwitchableValue; maxWidth?: ISwitchableValue; minWidth?: ISwitchableValue; } export interface IChecklistItem { [id: string]: boolean; } export interface IAppBuildProgress { isBuilding: boolean; message: string; percent: number; type: ProgressTypes; shouldSkip: boolean; } export interface IDownloadButtonOptions { buttonSize: "small" | "medium" | "large"; fontFamily: "serif" | "sans-serif"; bgColor: string; fgColor: string; borderRadius: number; showAppIcon: { enabled: boolean; alignment: "right" | "left"; }; showDownloadIcon: { enabled: boolean; alignment: "right" | "left"; }; btnText: string; } export interface IAppMeta { appIterations?: number; completedChecklistItems?: IChecklistItem; currentBuildProgress?: { channel?: string; id?: string; linux?: IAppBuildProgress; mac?: IAppBuildProgress; projectConfig?: { appId?: string; appFiles?: string[]; appPath?: FilePath; appProtocolScheme?: string; extraContentFiles?: ExtraFileReference[]; electronMirror?: string; extraResources?: ExtraFileReference[]; icon: FilePath; id: string; linux?: { category?: string; icon?: FilePath; }; mac?: { category?: string; entitlements?: FilePath; icon?: FilePath; }; productName?: string; schemaVersion: number; snap?: IAppBuilderLib["config"]["snap"]; windows?: { icon?: FilePath; }; }; shouldCodeSign?: boolean; shouldRelease?: boolean; sourceArchiveDetails?: { bucket: string; key: string; url: string; }; windows?: IAppBuildProgress; }; downloadButtons?: { universal: IDownloadButtonOptions; mac: IDownloadButtonOptions; windows: IDownloadButtonOptions; linux: IDownloadButtonOptions; }; firstSuccessfulBuildEndedAt?: string; isAppChanged?: boolean; isFrameBlocked?: boolean; isHttps?: boolean; publishedVersions: { desktopify?: string; electron?: string; version?: string; }; } export interface IAppPublishedVersions { electron?: string; desktopify?: string; version?: string; } interface IStripeSubscription { status: string; subscriptionId: string; itemId: string; } export interface ISwitchableValue { enabled: boolean; value: T; } export interface IIcon { url: string; width: number; height: number; type: string; } export interface CustomMacCodeSign { certName: string; certPassword: string; certUrl: string; } export interface ICustomNotarization { appleId: string; appleIdPassword: string; } export declare enum WindowsCertType { hsm = "hsm", file = "file" } export interface CustomWindowsCodeSignFile { certType: WindowsCertType.file; certName: string; certPassword: string; } export interface CustomWindowsCodeSignHSM { certType: WindowsCertType.hsm; hsmCertName: string; } export interface IApp { appModelId: string; appPkgName?: string; appProtocol?: ISwitchableValue; appType?: string; cssToInject?: string; customMacCodeSign?: CustomMacCodeSign; customDomain?: string; customNotarization?: { appleId: string; appleIdPassword: string; }; customUserAgent?: ISwitchableValue; customWindowsCodeSign?: CustomWindowsCodeSignFile | CustomWindowsCodeSignHSM; disableContextMenu?: boolean; icon?: string; icons?: IIcon[]; id: string; internalUrls?: ISwitchableValue; isContextMenuDisabled: boolean; isDevToolsDisabled: boolean; isSingleInstance?: boolean; isWebSecurityDisabled?: boolean; isTransitioningFromSquirrelWindows?: boolean; jsToInject?: string; menubarIcon?: string; meta?: IAppMeta; name: string; secret?: string; shouldCreate32BitWindowsArtifacts?: boolean; shouldCreateAppXFiles?: boolean; shouldCreateAppImages?: boolean; shouldCreateDebianPackages?: boolean; shouldCreateDMGs?: boolean; shouldCreateMacZipInstallers?: boolean; shouldCreateMSIInstallers?: boolean; shouldCreateNSISInstallers?: boolean; shouldCreateRPMPackages?: boolean; shouldCreateSnapFiles?: boolean; shouldLaunchAtStartupByDefault?: boolean; shouldOnlySendAbsolutelyNecessaryRequests?: boolean; shouldReuseRendererProcess?: boolean; snapStore?: { login?: string; }; subscription?: IStripeSubscription; toggleVisibilityKeyboardShortcut?: ISwitchableValue; trayIcon?: string; url: string; windowOptions: IWindowOptions; } export {};