import type { DeplintPackagePlacement } from '../package/index.ts';
import type { DeplintPackagePolicy } from './packagePolicy.ts';
import type { DeplintRule, DeplintWorkspaceContext } from './types.ts';
/**
 * Map natural classifier output + package shape to a placement string that
 * can be compared with `commands.deplint.packages.<name>.placement`.
 *
 * Returns `undefined` when there is no single natural placement (e.g. the
 * dep is not declared here, or only a `dev` placement would make sense and
 * that is never produced by the classifier for mixed listings).
 */
export declare function naturalPlacementForDependency(context: DeplintWorkspaceContext, dependency: string): DeplintPackagePlacement | 'review' | undefined;
/**
 * A local placement override is redundant when:
 * - it is declared in this workspace's own xy config (not only inherited)
 * - presence is inferred (allowed/required still justify keeping the entry)
 * - peerOptional is not forced (that flag is independent of placement)
 * - the natural classifier placement matches the configured placement
 * - natural placement is not `review` (borderline still needs a human decision)
 */
export declare function isRedundantPackagePlacement(context: DeplintWorkspaceContext, dependency: string, policy: DeplintPackagePolicy): {
    natural: DeplintPackagePlacement;
    placement: DeplintPackagePlacement;
} | undefined;
export declare const redundantPackagePlacementRule: DeplintRule;
//# sourceMappingURL=rulesRedundantPlacement.d.ts.map