/**
 * @file GitHub release asset downloads.
 */
import type { AssetPattern, DownloadGitHubReleaseConfig, RepoConfig } from './github-types';
/**
 * Download a binary from any GitHub repository with version caching.
 *
 * @example
 *   ;```typescript
 *   const binaryPath = await downloadGitHubRelease({
 *     owner: 'SocketDev',
 *     repo: 'socket-btm',
 *     toolName: 'lief',
 *     toolPrefix: 'lief-',
 *     assetName: 'lief-linux-x64',
 *     binaryName: 'lief',
 *     platformArch: 'linux-x64',
 *   })
 *   ```
 *
 * @param config - Download configuration.
 *
 * @returns Path to the downloaded binary
 */
export declare function downloadGitHubRelease(config: DownloadGitHubReleaseConfig): Promise<string>;
/**
 * Download a specific release asset. Supports pattern matching for dynamic
 * asset discovery.
 *
 * @example
 *   ;```typescript
 *   await downloadReleaseAsset('v1.0.0', 'tool-linux-x64', '/tmp/tool', {
 *     owner: 'SocketDev',
 *     repo: 'socket-btm',
 *   })
 *   ```
 *
 * @param tag - Release tag name.
 * @param assetPattern - Asset name or pattern (glob string, prefix/suffix
 *   object, or RegExp)
 * @param outputPath - Path to write the downloaded file.
 * @param repoConfig - Repository configuration (owner/repo)
 * @param options - Additional options.
 */
export declare function downloadReleaseAsset(tag: string, assetPattern: string | AssetPattern, outputPath: string, repoConfig: RepoConfig, options?: {
    quiet?: boolean;
}): Promise<void>;
