import type { BinaryConfig, PlatformInfo } from './types'; /** * RecorderInstaller class for managing binary installation * * @example * ```typescript * const installer = new RecorderInstaller(); * * if (!installer.isInstalled()) { * await installer.install(); * } * * const binaryPath = installer.getBinaryPath(); * ``` */ export declare class RecorderInstaller { private binaryConfig; private binDir; constructor(binaryConfig?: BinaryConfig); /** * Get platform information */ getPlatformInfo(): PlatformInfo; /** * Check if the current platform is supported */ isPlatformSupported(): boolean; /** * Get the download URL for the current platform */ getDownloadUrl(): string; /** * Get the path where the binary should be installed. * * On macOS the binary lives inside a .app bundle so that TCC * (macOS 26+) can grant screen-recording permissions. */ getBinaryPath(): string; /** * Check if the binary is installed */ isInstalled(): boolean; /** * Get the expected checksum for the current platform */ getExpectedChecksum(): string | undefined; /** * Calculate SHA256 checksum of a file */ private calculateChecksum; /** * Download a file from URL */ private downloadFile; /** * Extract tar.gz archive */ private extractTarGz; /** * Install the binary for the current platform * @param options - Installation options * @param options.force - Force reinstall even if already installed * @param options.skipChecksum - Skip checksum verification */ install(options?: { force?: boolean; skipChecksum?: boolean; }): Promise; /** * Uninstall the binary */ uninstall(): void; /** * Get the binary version (by running capture --version) */ getInstalledVersion(): Promise; }