/** * An object of multiple versions of a binary. Each version could have * different keys where each key represents a partial url path. Each * partial url path could represent a combination of os architecture * and os type. */ export interface VersionList { [forcedVersion: string]: { [name: string]: VersionObj; }; } /** * Information about the binary file. */ export interface VersionObj { name?: string; size?: number; url?: string; version?: string; } /** * Encapsulates the getVersionObjs and getVersionObj into a single method. * @param versionList The version list object. * @param osMatch The OS name and architecture. * @param version Optional field for the semver version number or latest. * @param maxVersion Optional field to find the max version matching a value. * @returns Either a VersionObj or null. */ export declare function getVersion(versionList: VersionList, osMatch: string, version?: string, maxVersion?: string): VersionObj | null; /** * Get the version obj from the version list. * @param versionList The version list object. * @param version Optional field for the semver version number or latest. * @returns The object with paritial urls associated with the binary size. */ export declare function getVersionObjs(versionList: VersionList, version?: string, maxVersion?: string): { [key: string]: VersionObj; }; /** * Get the version obj from the map. * @param versionObjs A map of partial urls to VersionObj * @param osMatch The OS name and architecture. * @returns Either a VersionObj or null. */ export declare function getVersionObj(versionObjMap: { [key: string]: VersionObj; }, osMatch: string): VersionObj | null;