import * as plugins from '../plugins.js'; import type { IRouteMetadata, IRouteSourceBinding } from '../../dist_ts_interfaces/data/route-management.js'; import type { ReferenceResolver } from './classes.reference-resolver.js'; export declare const sourcePolicyLimits: { readonly maxBindings: 16; readonly maxPathPoliciesPerBinding: 12; readonly maxPathPatternsPerPolicy: 64; readonly maxPathPatternLength: 256; readonly maxPathPatternWildcards: 8; readonly maxSourceProfileRefLength: 256; readonly maxIdLength: 128; readonly maxExceededMessageLength: 512; readonly maxCompiledVariantsPerRoute: 512; }; export declare class SourcePolicyCompiler { static compileRoute(route: plugins.smartproxy.IRouteConfig, metadata: IRouteMetadata | undefined, referenceResolver: ReferenceResolver | undefined, routeId?: string): plugins.smartproxy.IRouteConfig[]; static validateSourceBindingsPayload(sourceBindings?: Partial[]): string | undefined; private static validateRateLimitPayload; private static validateChallengePayload; static validateSourcePolicyShape(sourceBindings?: IRouteSourceBinding[], route?: plugins.smartproxy.IRouteConfig): string | undefined; static validateSourceBindingsShape(sourceBindings?: IRouteSourceBinding[], route?: plugins.smartproxy.IRouteConfig): string | undefined; static validateResolvedSourcePolicy(sourceBindings: IRouteSourceBinding[] | undefined, referenceResolver: ReferenceResolver | undefined): string | undefined; static validateResolvedSourceBindings(sourceBindings: IRouteSourceBinding[] | undefined, referenceResolver: ReferenceResolver | undefined): string | undefined; private static buildCompiledRoute; private static buildDenyFallbackRoute; private static denySocket; private static looksLikeHttpRequest; private static getPathPatterns; private static calculatePathPriorityOffset; private static calculateSourcePriority; private static applyIntegerPriorities; private static clampPriority; private static getExpandedPortCount; private static normalizeMaxConnections; private static forceIpRateLimit; private static sanitizeSourcePolicySecurity; private static isEmptySecurity; private static getSourceMatchEntries; private static matchesAllSources; private static buildBindingSecurity; private static requiresHttpProtocol; private static omitSourceMatchFields; }