import type { Policy, SemverVersion, GitUrlVersion, FileSystemPath, PolicyConfigKeys } from '../policy'; import type { WorkspaceDependencyLifecycleType } from '../../dependencies'; export type WorkspacePolicyConfigKeys = Omit; export type WorkspacePolicyConfigKeysNames = keyof WorkspacePolicyConfigKeys; export type WorkspacePolicyConfigObject = Partial>; export type WorkspacePolicyManifest = Partial>; export type WorkspacePolicyLifecycleConfigObject = { [dependencyId: string]: WorkspacePolicyConfigEntryValue; }; type WorkspacePolicyLifecycleManifestObject = { [dependencyId: string]: WorkspacePolicyEntryVersion; }; export type WorkspacePolicyConfigEntryValue = WorkspacePolicyEntryValue | WorkspacePolicyEntryVersion; export type AddEntryOptions = { updateExisting?: boolean; skipIfExisting?: boolean; }; /** * Allowed values are valid semver values, git urls, fs path. */ export type WorkspacePolicyEntryVersion = SemverVersion | GitUrlVersion | FileSystemPath; export type WorkspacePolicyEntryValue = { version: WorkspacePolicyEntryVersion; preserve?: boolean; }; export type WorkspacePolicyEntry = { dependencyId: string; lifecycleType: WorkspaceDependencyLifecycleType; value: WorkspacePolicyEntryValue; }; export declare class WorkspacePolicy implements Policy { private _policiesEntries; constructor(_policiesEntries: WorkspacePolicyEntry[]); get entries(): WorkspacePolicyEntry[]; add(entry: WorkspacePolicyEntry, options?: AddEntryOptions): void; forEach(predicate: (dep: WorkspacePolicyEntry, index?: number) => void): void; filter(predicate: (dep: WorkspacePolicyEntry, index?: number) => boolean): WorkspacePolicy; find(depId: string, lifecycleType?: WorkspaceDependencyLifecycleType): WorkspacePolicyEntry | undefined; remove(depIds: string[]): WorkspacePolicy; getDepVersion(depId: string, lifecycleType?: WorkspaceDependencyLifecycleType): WorkspacePolicyEntryVersion | undefined; getValidSemverDepVersion(depId: string, lifecycleType?: WorkspaceDependencyLifecycleType): WorkspacePolicyEntryVersion | undefined; toConfigObject(): WorkspacePolicyConfigObject; /** * Create an object ready for package manager installation * this is similar to "toConfigObject" but it will make the value of a specific dep always a string (the version / url) */ toManifest(): WorkspacePolicyManifest; byLifecycleType(lifecycleType: WorkspaceDependencyLifecycleType): WorkspacePolicy; static mergePolices(policies: WorkspacePolicy[]): WorkspacePolicy; } export {};