import type { Workspace } from '../../../pm/index.ts';
import type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts';
/**
 * Finds peerDependencies that are imported in dist but should be regular
 * dependencies — i.e. unrequested by the package's own dep graph.
 *
 * For terminal packages (apps, CLIs), every dist-imported peer should be a
 * regular dependency: terminal packages have no consumers to inherit the
 * peer requirement, so peerDependencies is the wrong section. The
 * `requiredPeers` gating used for libraries (skip peers required by another
 * dep so consumers inherit) does not apply.
 *
 * For library packages, only peers that are imported in dist AND not
 * required by any of the package's own dependencies / devDependencies are
 * considered unrequested. Peers required by a dep stay in peerDependencies
 * so consumers inherit the requirement.
 */
export declare function findUnrequestedPeerDeps(location: string, packageParams: CheckPackageParams, { externalDistImports, externalDistTypeImports }: CheckSourceParams, isTerminal: boolean, exclude?: Set<string>): string[];
export declare function getUnrequestedPeerDependencies({ name, location }: Workspace, packageParams: CheckPackageParams, sourceParams: CheckSourceParams, exclude?: Set<string>, isTerminal?: boolean): number;
export declare function fixUnrequestedPeerDependencies(workspace: Workspace, packageParams: CheckPackageParams, sourceParams: CheckSourceParams, exclude?: Set<string>, isTerminal?: boolean): number;
export declare function findRedundantPeerDeps({ peerDependencies, dependencies }: CheckPackageParams, exclude?: Set<string>): string[];
export declare function getRedundantPeerDependencies({ name, location }: Workspace, packageParams: CheckPackageParams, exclude?: Set<string>): number;
export declare function fixRedundantPeerDependencies(workspace: Workspace, packageParams: CheckPackageParams, exclude?: Set<string>): number;
//# sourceMappingURL=getUnnecessaryPeerDependencies.d.ts.map