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