import { StatsMetaData, StatsAssets, StatsExpose, BasicStatsMetaData, } from './stats'; import { RemoteWithEntry, RemoteWithVersion } from './common'; export interface ManifestShared { id: string; name: string; version: string; singleton: boolean; requiredVersion: string; hash: string; assets: StatsAssets; } export interface ManifestRemoteCommonInfo { federationContainerName: string; moduleName: string; alias: string; } export type ManifestRemote = | (Omit & T) | (Omit & T); export type ManifestExpose = Pick< StatsExpose, 'assets' | 'id' | 'name' | 'path' >; export interface Manifest< T = BasicStatsMetaData, K = ManifestRemoteCommonInfo, > { id: string; name: string; metaData: StatsMetaData; shared: ManifestShared[]; remotes: ManifestRemote[]; exposes: ManifestExpose[]; }