import type { AssetManifestFilters, AssetManifest, AssetManifestEntry } from '../rest/asset-manifests.js'; export declare const assetTypes: readonly ["log", "trace", "video", "screenshot", "pcap", "report", "file", "all"]; export type AssetTypeSelection = typeof assetTypes[number]; export declare function assetTypeSelectionFromFlag(type?: string): AssetTypeSelection | undefined; export interface AssetSourceFlags { 'check-id'?: string; 'test-session-id'?: string; 'result-id'?: string; } export type AssetSource = { kind: 'check-result'; checkId: string; resultId: string; } | { kind: 'test-session-result'; testSessionId: string; resultId: string; }; export declare function resolveAssetSource(flags: AssetSourceFlags): AssetSource; export declare function assetManifestFiltersFromSelection(options: { type?: AssetTypeSelection; asset?: string; }): AssetManifestFilters | undefined; export declare function fetchAssetManifest(source: AssetSource, filters?: AssetManifestFilters): Promise; export declare function filterAssetsByType(assets: AssetManifestEntry[], type?: AssetTypeSelection): AssetManifestEntry[]; export declare function hasGlobCharacters(selector: string): boolean; export declare function filterAssetsBySelector(assets: AssetManifestEntry[], selector?: string): AssetManifestEntry[]; export declare function selectAssets(assets: AssetManifestEntry[], options: { type?: AssetTypeSelection; asset?: string; }): AssetManifestEntry[]; export interface AssetStorageSummary { directAssets: number; archiveEntries: number; archiveUrls: string[]; } export declare function summarizeAssetStorage(assets: AssetManifestEntry[]): AssetStorageSummary; export declare function isSingleArchiveBundle(assets: AssetManifestEntry[]): boolean; export declare function hasArchiveEntries(assets: AssetManifestEntry[]): boolean; export declare function archiveBundleAssets(assets: AssetManifestEntry[]): AssetManifestEntry[]; export declare function defaultDownloadDirectory(source: AssetSource): string; export declare function destinationPathForAsset(directory: string, asset: AssetManifestEntry): string; export declare function formatTruncatedManifestMessage(manifest: AssetManifest): string; export declare function assertManifestSupportsDownload(manifest: AssetManifest, filters?: AssetManifestFilters): void; export interface AssetDownloadProgress { downloadedBytes: number; totalBytes?: number; } export interface AssetDownloadOptions { force?: boolean; skipExisting?: boolean; onProgress?: (progress: AssetDownloadProgress) => void; } export declare function downloadAssetToFile(asset: AssetManifestEntry, filePath: string, options: AssetDownloadOptions): Promise<'written' | 'skipped'>;