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<IRouteSourceBinding>[]): 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;
}
