/**
 * Const string to identify the internal attenuators compartment
 */
export const ATTENUATORS_COMPARTMENT: "<ATTENUATORS>";
export function detectAttenuators(policy?: Policy): Array<string>;
export function dependencyAllowedByPolicy(namingKit: PackageNamingKit, packagePolicy: PackagePolicy): boolean;
/**
 * Returns the policy applicable to the canonicalName of the package
 *
 * @overload
 * @param {PackageNamingKit} namingKit - a key in the policy resources spec is derived from these
 * @param {SomePolicy} policy - user supplied policy
 * @returns {SomePackagePolicy} packagePolicy if policy was specified
 */
export function getPolicyForPackage(namingKit: PackageNamingKit, policy: SomePolicy): SomePackagePolicy;
/**
 * Returns `undefined`
 *
 * @overload
 * @param {PackageNamingKit} namingKit - a key in the policy resources spec is derived from these
 * @param {SomePolicy} [policy] - user supplied policy
 * @returns {SomePackagePolicy|undefined} packagePolicy if policy was specified
 */
export function getPolicyForPackage(namingKit: PackageNamingKit, policy?: SomePolicy | undefined): SomePackagePolicy | undefined;
export function makeDeferredAttenuatorsProvider(compartments: Record<string, Compartment>, compartmentDescriptors: Record<string, CompartmentDescriptor>): DeferredAttenuatorsProvider;
export function attenuateGlobals(globalThis: object, globals: object, packagePolicy: PackagePolicy, attenuators: DeferredAttenuatorsProvider, pendingJobs: Array<Promise<any>>, name?: string): void;
export function enforceModulePolicy(specifier: string, compartmentDescriptor: CompartmentDescriptor, { exit, errorHint }?: EnforceModulePolicyOptions): void;
export function attenuateModuleHook(specifier: string, originalModuleRecord: import("ses").ThirdPartyStaticModuleInterface, policy: PackagePolicy, attenuators: DeferredAttenuatorsProvider): Promise<import("ses").ThirdPartyStaticModuleInterface>;
/**
 * Options for {@link enforceModulePolicy}
 */
export type EnforceModulePolicyOptions = {
    /**
     * - Whether it is an exit module
     */
    exit?: boolean | undefined;
    /**
     * - Error hint message
     */
    errorHint?: string | undefined;
};
import type { Policy } from './types.js';
import type { PackageNamingKit } from './types.js';
import type { PackagePolicy } from './types.js';
import type { SomePolicy } from './types.js';
import type { SomePackagePolicy } from './types.js';
import type { CompartmentDescriptor } from './types.js';
import type { DeferredAttenuatorsProvider } from './types.js';
//# sourceMappingURL=policy.d.ts.map