UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

175 lines 5.01 kB
/** * Adobe Photoshop API Client * * Provides integration with Adobe Photoshop APIs for automated * image enhancement, batch processing, and visual optimization. */ export interface ImageProcessingRequest { inputPath: string; operations: ImageOperation[]; outputOptions: ImageOutputOptions; metadata?: ImageMetadata; } export interface ImageOperation { type: 'resize' | 'crop' | 'enhance' | 'filter' | 'branding' | 'composite' | 'text-overlay'; parameters: any; order: number; } export interface ImageOutputOptions { format: 'png' | 'jpg' | 'pdf' | 'psd' | 'tiff'; quality: number; dpi: number; colorSpace: 'RGB' | 'CMYK' | 'Grayscale'; compression?: 'none' | 'lzw' | 'zip' | 'jpeg'; } export interface ImageMetadata { title?: string; description?: string; author?: string; copyright?: string; keywords?: string[]; createdDate?: Date; } export interface ResizeOperation { width?: number; height?: number; maintainAspectRatio: boolean; resizeMethod: 'bicubic' | 'bilinear' | 'preserve-details'; } export interface CropOperation { x: number; y: number; width: number; height: number; units: 'pixels' | 'percent'; } export interface EnhanceOperation { autoLevels: boolean; autoColor: boolean; autoContrast: boolean; sharpen: boolean; noiseReduction: boolean; brightness?: number; contrast?: number; } export interface BrandingOperation { logoPath?: string; logoPosition: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center'; logoOpacity: number; watermark?: { text: string; font: string; size: number; color: string; opacity: number; position: string; }; border?: { width: number; color: string; style: 'solid' | 'dashed' | 'dotted'; }; } export interface TextOverlayOperation { text: string; font: string; size: number; color: string; position: { x: number; y: number; alignment: 'left' | 'center' | 'right'; }; background?: { color: string; opacity: number; padding: number; }; } export interface CompositeOperation { layers: CompositeLayer[]; blendMode: 'normal' | 'multiply' | 'screen' | 'overlay' | 'soft-light'; backgroundPath?: string; } export interface CompositeLayer { imagePath: string; position: { x: number; y: number; }; opacity: number; blendMode: string; transform?: { scaleX: number; scaleY: number; rotation: number; }; } export interface PhotoshopAsset { id: string; inputPath: string; outputPath: string; format: string; dimensions: { width: number; height: number; dpi: number; }; fileSize: number; operations: string[]; metadata: { createdAt: Date; processingTime: number; operationsCount: number; qualityScore: number; }; previewUrl?: string; } export interface BatchProcessingOptions { concurrency: number; skipExisting: boolean; onProgress?: (processed: number, total: number) => void; onError?: (error: Error, file: string) => void; } export declare class PhotoshopAPIClient { private authenticator; private apiEndpoint; private accessToken; constructor(); /** * Initialize the client and authenticate with Adobe Photoshop API */ initialize(): Promise<void>; /** * Process a single image with specified operations */ processImage(request: ImageProcessingRequest): Promise<PhotoshopAsset>; /** * Batch process multiple images with the same operations */ batchProcessImages(requests: ImageProcessingRequest[], options?: BatchProcessingOptions): Promise<PhotoshopAsset[]>; /** * Enhance screenshots and document images for professional presentation */ enhanceDocumentImages(imagePaths: string[], enhancementLevel?: 'minimal' | 'standard' | 'maximum'): Promise<PhotoshopAsset[]>; /** * Apply consistent branding to multiple images */ applyBrandingToImages(imagePaths: string[], branding: BrandingOperation): Promise<PhotoshopAsset[]>; /** * Create composite images for document headers, covers, etc. */ createComposite(backgroundPath: string, layers: CompositeLayer[], outputOptions: ImageOutputOptions): Promise<PhotoshopAsset>; /** * Optimize images for web and print output */ optimizeForOutput(imagePath: string, outputType: 'web' | 'print' | 'email'): Promise<PhotoshopAsset>; private ensureAuthenticated; private executeImageProcessing; private getDocumentEnhancementOperations; private getOptimizationOperations; private getOptimizedOutputOptions; private calculateQualityScore; } export declare const photoshopClient: PhotoshopAPIClient; //# sourceMappingURL=photoshop-client.d.ts.map