/**
 * Allowlist-style license check used by `xy license`.
 */
/** Default SPDX-ish identifiers accepted by `xy license`. */
export declare const DEFAULT_ALLOWED_LICENSES: readonly string[];
/**
 * True when the license is missing (unknown) or at least one `OR` branch is
 * on the allowlist. Parenthesized SPDX expressions like `(MIT OR Apache-2.0)`
 * are unwrapped first.
 */
export declare function isAllowedLicense(license: string | null | undefined, allowed: ReadonlySet<string>): boolean;
export interface DisallowedLicenseFinding {
    license: string;
    packageName: string;
}
/**
 * `xy license` settings, read from `commands.license` in xy.config
 * (root config cascades into workspaces; workspace config overrides).
 */
export interface LicenseConfig {
    /** License identifiers accepted in addition to the defaults. */
    allow?: string[];
    /** Replaces the default allowlist entirely; `allow` / `deny` still apply on top. */
    allowOnly?: string[];
    /** License identifiers removed from the effective allowlist. */
    deny?: string[];
    /** Packages to skip — bare names (`left-pad`) or pinned (`left-pad@1.3.0`). */
    ignorePackages?: string[];
}
/** Effective allowlist for a workspace: (allowOnly ?? defaults) + allow − deny. */
export declare function resolveAllowedLicenses(config?: LicenseConfig): Set<string>;
/**
 * Returns findings for packages whose declared licenses are not on the
 * allowlist. Empty license arrays are treated as allowed (unknown).
 */
export declare function findDisallowedLicenses(packages: Record<string, {
    licenses?: string | string[];
}>, allowed?: ReadonlySet<string>, ignorePackages?: readonly string[]): DisallowedLicenseFinding[];
//# sourceMappingURL=checkLicenses.d.ts.map