export type FrpcReleasePlatform = 'darwin' | 'linux' | 'windows'; export declare function buildFrpcArchiveMemberPath(folder: string, platform: NodeJS.Platform): string; export declare function frpcReleaseArchiveExtension(frpPlatform: FrpcReleasePlatform): '.zip' | '.tar.gz'; export declare function nodePlatformForFrpTarget(frpPlatform: FrpcReleasePlatform): NodeJS.Platform; /** Resolve on-disk path after system tar extracts a POSIX member path. */ export declare function resolveExtractedMemberPath(extractDir: string, memberPath: string): string; /** Pure Node tar.gz member extract — no system `tar` (Windows / minimal Linux). */ export declare function extractTarGzMemberNode(archivePath: string, memberPath: string, destPath: string): void; /** Extract frpc from a Windows release zip (upstream publishes `.zip`, not `.tar.gz`). */ export declare function extractFrpcFromZipArchive(archivePath: string, destBin: string, folder: string, platform?: NodeJS.Platform): void; /** Route to zip or tar.gz extraction based on archive extension. */ export declare function extractFrpcFromReleaseArchive(archivePath: string, destBin: string, folder: string, platform?: NodeJS.Platform): Promise; /** * Extract frpc from a release tarball. * Tries system `tar` first; falls back to built-in Node parser (macOS BSD tar quirks, Windows without tar, etc.). */ export declare function extractFrpcFromTarGzArchive(archivePath: string, destBin: string, folder: string, platform?: NodeJS.Platform): Promise;