import type { Capability, KitType } from "@rnx-kit/config"; import type { PackageManifest } from "@rnx-kit/tools-node/package"; import type { DependencyType, Package, Profile } from "./types"; export declare function devOnlyPackages(packages: Record): Record; export declare function removeKeys(obj: Record | undefined, keys: string[]): Record | undefined; export declare function updateDependencies(dependencies: Record | undefined, packages: Record, dependencyType: DependencyType): Record; /** * Updates the specified package manifest so that it will satisfy all declared * capabilities, using the specified set of profiles. * * When a kit is of type "library", it expects the consumer to be providing all * the capabilites. This function will make sure that `peerDependencies` is * correctly populated, and because `peerDependencies` don't get downloaded (at * least with some package managers), it will also make sure that appropriate * changes are made to `devDependencies`. To avoid version conflicts with the * hosting app, and with other libraries, the packages that were added, will be * removed from `dependencies` if found. * * This function behaves similarly when a kit is of type "app". But because it * is now a provider of capabilities, it needs to have a direct dependency on * packages. For the "app" type, packages are instead added to `dependencies`, * and removed from `peerDependencies` and `devDependencies`. * * @param manifest The package manifest that should be updated * @param capabilities The set of capabilities that the kit requires * @param profiles The set of profiles that the kit needs to conform to * @param devProfiles The set of profiles that the kit will develop against * @param packageType Whether the kit provides a feature or is an app * @returns A package manifest that satisfies specified capabilities */ export declare function updatePackageManifest(manifest: PackageManifest, capabilities: Capability[], profiles: Profile[], devProfiles: Profile[], packageType: KitType): PackageManifest; //# sourceMappingURL=manifest.d.ts.map