import { Either } from '@eleven-am/fp';
import { CodecType, FFMPEGOptions, HardwareAccelerationMethod } from './types';
export interface HardwareOptimizationOptions {
    method: HardwareAccelerationMethod;
    codec: CodecType;
    width: number;
    height: number;
    frameRate: number;
    bitrate: number;
    isLiveStream?: boolean;
}
/**
 * Provides hardware-specific optimizations for different acceleration methods
 * Optimizes encoder settings based on hardware capabilities
 */
export declare class HardwareOptimizer {
    /**
     * Get optimal settings for specific hardware acceleration method
     */
    getOptimalSettings(options: HardwareOptimizationOptions): Either<FFMPEGOptions>;
    /**
     * NVIDIA GPU optimizations
     */
    private getNvidiaOptimalSettings;
    /**
     * Apple VideoToolbox optimizations
     */
    private getVideoToolboxOptimalSettings;
    /**
     * Intel Quick Sync optimizations
     */
    private getQuickSyncOptimalSettings;
    /**
     * VAAPI (AMD/Intel integrated) optimizations
     */
    private getVaapiOptimalSettings;
    /**
     * AMD AMF optimizations
     */
    private getAMFOptimalSettings;
    /**
     * Software encoding optimizations
     */
    private getSoftwareOptimalSettings;
    /**
     * Get x264 tuning based on content
     */
    private getX264Tune;
    /**
     * Get x264 specific parameters
     */
    private getX264Params;
    /**
     * Get x265 specific parameters
     */
    private getX265Params;
    /**
     * Get recommended thread count based on resolution and hardware
     */
    getOptimalThreadCount(width: number, height: number, method: HardwareAccelerationMethod): number | undefined;
}
//# sourceMappingURL=hardwareOptimizer.d.ts.map