export type ModuleToPackageFallbackFn = (requestedName: string) => string | undefined;
export type AggregateDepsOptions = {
    packageModules: Record<string, import("./moduleRecord").LavamoatModuleRecord>;
    moduleIdToModuleRecord: Map<string, import("./moduleRecord").LavamoatModuleRecord>;
    moduleToPackageFallback?: ModuleToPackageFallbackFn | undefined;
};
export type GeneratePolicyFn = (opts: Partial<ModuleInspectorOptions> & {
    policyOverride?: import("./schema").LavaMoatPolicyOverrides;
    moduleToPackageFallback?: (value: string) => string | undefined;
}) => import("./schema").LavaMoatPolicy | import("./schema").LavaMoatPolicyDebug;
export type InspectModuleFn = (moduleRecord: import("./moduleRecord").LavamoatModuleRecord, opts?: Partial<ModuleInspectorOptions> | undefined) => any;
export type ModuleInspectorOptions = {
    isBuiltin: (value: string) => boolean;
    includeDebugInfo?: boolean | undefined;
    moduleToPackageFallback?: ((specifier: string) => string | undefined) | undefined;
};
export type ModuleInspectorMembers = {
    generatePolicy: GeneratePolicyFn;
    inspectModule: InspectModuleFn;
};
export type ModuleInspector = import("node:events").EventEmitter & ModuleInspectorMembers;
export type AST = import("@babel/parser").ParseResult<import("@babel/types").File> | import("@babel/types").File;
export const rootSlug: "$root$";
/**
 * @param {ModuleInspectorOptions} opts
 * @returns {ModuleInspector}
 */
export function createModuleInspector(opts: ModuleInspectorOptions): ModuleInspector;
/**
 * @param {string} policyName
 * @returns
 */
export function getDefaultPaths(policyName: string): {
    policiesDir: string;
    policyDir: string;
    primary: string;
    override: string;
    debug: string;
};
//# sourceMappingURL=generatePolicy.d.ts.map