/**
 * GPU Encoder Detection
 *
 * Shared GPU encoder detection and naming utilities used by both
 * chunkEncoder and streamingEncoder services.
 */
export type ConcreteGpuEncoder = "nvenc" | "videotoolbox" | "vaapi" | "qsv" | "amf";
export type GpuEncoder = ConcreteGpuEncoder | null;
export declare function getCompiledGpuEncoders(ffmpegEncodersStdout: string): ConcreteGpuEncoder[];
export declare function selectUsableGpuEncoder(candidates: readonly ConcreteGpuEncoder[], isUsable: (encoder: ConcreteGpuEncoder) => Promise<boolean>): Promise<GpuEncoder>;
export declare function detectGpuEncoder(): Promise<GpuEncoder>;
export declare function getCachedGpuEncoder(): Promise<GpuEncoder>;
export declare function getGpuEncoderName(encoder: GpuEncoder, codec: "h264" | "h265"): string;
export declare function getProbeArgs(encoder: ConcreteGpuEncoder): string[];
/**
 * Translate a libx264-style `-preset` value to one accepted by the given
 * GPU encoder.
 *
 * - `nvenc`: libx264 names → `p1`..`p7`. Already-native `pN` values pass
 *   through unchanged. Unknown values fall back to `p4` (medium).
 * - `qsv`:  `ultrafast`/`superfast`/`placebo` → nearest supported name;
 *   everything else passes through.
 * - `videotoolbox`, `vaapi`, `amf`, `null`: no remap (they either ignore
 *   `-preset` entirely or accept the libx264 vocabulary).
 */
export declare function mapPresetForGpuEncoder(encoder: GpuEncoder, preset: string): string;
//# sourceMappingURL=gpuEncoder.d.ts.map