Files
image-processing/src/shared/types.ts
T

91 lines
2.2 KiB
TypeScript

export type OutputFormat = 'file' | 'file-jpg'
export type ImageStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled'
export interface ImageFileItem {
id: string
path: string
name: string
size: number
width: number | null
height: number | null
status: ImageStatus
outputPath?: string
error?: string
}
export interface ProcessOptions {
paths: string[]
useSourceDirectory: boolean
outputDirectory?: string
outputFormat: OutputFormat
junkSizeMb: number
}
export interface ProcessProgress {
current: number
total: number
percent: number
item: ImageFileItem
cancelled: boolean
}
export interface ProcessSummary {
total: number
completed: number
failed: number
cancelled: boolean
}
export interface VersionInfo {
updateAvailable: boolean
latestVersion?: string
releaseNotes?: string
downloadUrl?: string
enforce: boolean
}
export interface LicenseSession {
token?: string
licenseCodeMask: string
deviceMask: string
expiresAt?: string
maxDevices: number
version?: VersionInfo
}
export type LicenseStatus = 'checking' | 'unlicensed' | 'active' | 'invalid' | 'network-error'
export interface LicenseViewState {
status: LicenseStatus
message: string
offline: boolean
session?: LicenseSession
version?: VersionInfo
}
export interface AppInfo {
name: string
version: string
platform: string
deviceName: string
}
export interface DesktopBridge {
getAppInfo(): Promise<AppInfo>
getLicenseState(): Promise<LicenseViewState>
activate(activationCode: string): Promise<LicenseViewState>
validateLicense(): Promise<LicenseViewState>
clearLicense(): Promise<LicenseViewState>
checkVersion(): Promise<VersionInfo>
downloadUpdate(downloadUrl: string, latestVersion?: string): Promise<void>
selectImages(): Promise<string[]>
selectFolder(): Promise<string[]>
selectOutputDirectory(): Promise<string | null>
pathsForFiles(files: File[]): string[]
inspectImages(paths: string[]): Promise<ImageFileItem[]>
processImages(options: ProcessOptions): Promise<ProcessSummary>
cancelProcessing(): Promise<void>
revealItem(filePath: string): Promise<void>
onProcessProgress(callback: (progress: ProcessProgress) => void): () => void
}