/**
 * 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