import type { Jurisdiction, JurisdictionContext, PolicyConstraint, ComposedPolicySet, CryptoSuite } from "./types.js";
export interface PolicyBundleDefinition {
    id: string;
    name: string;
    jurisdictions: Jurisdiction[];
    priority: number;
    constraints: PolicyConstraint[];
}
export declare const CRYPTO_SUITE_STRICTNESS: Record<CryptoSuite, number>;
export declare class PolicyComposer {
    private bundles;
    constructor();
    get bundleCount(): number;
    get registeredBundleIds(): string[];
    registerBundle(bundle: PolicyBundleDefinition): void;
    compose(ctx: JurisdictionContext, additionalBundleIds?: string[]): ComposedPolicySet;
    private selectApplicable;
    private resolveGroup;
    private byMax;
    private byCrypto;
    private byStrictness;
    private dataResidency;
    private extServices;
    private additive;
    private byPriority;
}
//# sourceMappingURL=policy-composer.d.ts.map