/**
 * Per-rule setting for `xy api-exposure` (see
 * `src/actions/api-exposure/API-EXPOSURE-INDEX.md` for rule ids and defaults).
 * - `boolean`: enable/disable at the default weight
 * - `number`: enable with a custom finite weight
 * - `'infinite'`: promote to a conclusive rule (any finding ⇒ peerDependency)
 * - object form: `{ enabled?, weight? }`
 */
export type ApiExposureRuleSetting = boolean | number | 'infinite' | {
    enabled?: boolean;
    weight?: number | 'infinite';
};
/**
 * AEI score band boundaries (inclusive maxima). Scores above
 * `probablyPeerMax` recommend `peer`. Defaults follow the spec:
 * 39 / 79 / 119 / 179.
 */
export interface ApiExposureThresholds {
    /** Max AEI for a `dependency` recommendation. @default 39 */
    dependencyMax: number;
    /** Max AEI for a `probably-dependency` recommendation. @default 79 */
    probablyDependencyMax: number;
    /** Max AEI for a `probably-peer` recommendation (above ⇒ `peer`). @default 179 */
    probablyPeerMax: number;
    /** Max AEI for a `review` recommendation. @default 119 */
    reviewMax: number;
}
/**
 * Per-dependency overrides for `xy api-exposure`, keyed by package name or
 * glob (e.g. `@scope/*`).
 */
export interface ApiExposureDependencyOverride {
    /**
     * Hard classification — skips scoring entirely for this dependency
     * (parallels deplint's `refType`).
     */
    classification?: 'dep' | 'dev' | 'peer';
    /** Rule overrides applied only when scoring this dependency. */
    rules?: Record<string, ApiExposureRuleSetting>;
}
/**
 * Configuration for `xy api-exposure` (API Exposure Index analysis).
 * See `src/actions/api-exposure/API-EXPOSURE-INDEX.md` for the full spec.
 */
export interface ApiExposureConfig {
    /**
     * Per-dependency configuration keyed by package name or glob.
     * Exact-name entries take precedence over glob entries.
     */
    packages?: Record<string, ApiExposureDependencyOverride>;
    /** Rule weight / enable-state overrides keyed by rule id. */
    rules?: Record<string, ApiExposureRuleSetting>;
    /** AEI band boundary overrides. */
    thresholds?: Partial<ApiExposureThresholds>;
    /** Apply the `aei.modifier.tree-shaking` modifier. @default true */
    treeShaking?: boolean;
}
//# sourceMappingURL=ApiExposureConfig.d.ts.map