import type { NodeTypeAvailabilityScope } from '@n8n/api-types'; import type { PolicyAction, PolicyAttachment, PolicyRule, PolicyVerdict } from './policy-rule.types'; export type ScopePolicy = { readonly attachments: readonly PolicyAttachment[]; readonly defaultAction: PolicyAction; }; export type ComposedVerdict = { readonly action: 'allow' | 'deny'; readonly scope: NodeTypeAvailabilityScope; readonly matchedRuleId: string | null; readonly optInAvailable: boolean; }; export type PackageResolver = (typeName: string) => string | null; export declare const nodeTypePackageResolver: PackageResolver; export declare function orderedAttachments(attachments: readonly PolicyAttachment[]): PolicyAttachment[]; export declare function evaluateType(attachments: readonly PolicyAttachment[], defaultAction: PolicyAction, typeName: string, resolvePackage?: PackageResolver): PolicyVerdict; export declare function evaluateRules(rules: readonly PolicyRule[], defaultAction: PolicyAction, typeName: string, resolvePackage?: PackageResolver): PolicyVerdict; export declare function partitionTypesByAction(rules: readonly PolicyRule[], defaultAction: PolicyAction, typeNames: readonly string[], resolvePackage?: PackageResolver): Record; export declare function evaluateComposedType(instance: ScopePolicy, project: ScopePolicy, typeName: string, resolvePackage?: PackageResolver): ComposedVerdict;