import type { IIpIntelligenceRecord, ISecurityBlockRule, ISecurityCompiledPolicy, ISecurityPolicyAuditEvent, TSecurityBlockRuleMatchMode, TSecurityBlockRuleType } from '../../dist_ts_interfaces/data/security-policy.js'; export interface ISecurityPolicyManagerOptions { intelligenceRefreshMs?: number; retentionSweepIntervalMs?: number; now?: () => number; onPolicyChanged?: () => void | Promise; } export interface IRemoteIngressFirewallSnapshot { blockedIps: string[]; } export declare const IP_INTELLIGENCE_LIST_LIMIT = 500; export declare const IP_INTELLIGENCE_RETENTION_MAX_AGE_MS: number; export declare const IP_INTELLIGENCE_RETENTION_HIGH_WATER = 10000; export declare const IP_INTELLIGENCE_RETENTION_LOW_WATER = 9000; export declare const IP_INTELLIGENCE_RETENTION_BATCH_SIZE = 500; export declare const IP_INTELLIGENCE_RETENTION_SWEEP_INTERVAL_MS: number; export declare class SecurityPolicyManager { private readonly smartNetwork; private readonly intelligenceRefreshMs; private readonly retentionSweepIntervalMs; private readonly now; private retentionSweepTimer?; private retentionSweepPromise?; private retentionMutationTail; private persistedIntelligenceCount?; private readonly inFlightObservations; private readonly queuedObservations; private readonly observationQueue; private readonly lastQueuedAt; private activeQueuedObservations; private queueDrainScheduled; private isStopping; private readonly onPolicyChanged?; constructor(options?: ISecurityPolicyManagerOptions); start(): Promise; stop(): Promise; observeIps(ips: string[]): Promise; queueObservedIps(ips: string[]): void; observeIp(ipAddress: string, options?: { force?: boolean; }): Promise; private performObserveIp; listBlockRules(): Promise; listIpIntelligence(options?: { ipAddresses?: string[]; limit?: number; }): Promise; private persistNewIntelligence; private requestRetentionSweep; private pruneIpIntelligence; private withRetentionMutation; refreshIpIntelligence(ipAddress: string): Promise; private scheduleQueueDrain; private drainObservationQueue; private pruneQueuedIpMemory; listAuditEvents(limit?: number): Promise; private intelligenceFromDoc; createBlockRule(input: { type: TSecurityBlockRuleType; value: string; matchMode?: TSecurityBlockRuleMatchMode; reason?: string; enabled?: boolean; }, actor?: string): Promise; updateBlockRule(id: string, patch: Partial>, actor?: string): Promise; deleteBlockRule(id: string, actor?: string): Promise; compilePolicy(): Promise; private compiledPolicyFromSets; private getReactiveRuleQuery; compileSmartProxyPolicy(): Promise; compileRemoteIngressFirewall(): Promise; private matchesAnyReactiveRule; private ruleMatchesIntelligence; private normalizeIp; private normalizeCidr; private normalizeNetworkEntries; private normalizeNetworkEntryList; private ipv4RangeToCidrs; private ipv4ToBigInt; private numberToIpv4; private powerOfTwoExponent; private isPublicIp; private ruleFromDoc; private writeAudit; private notifyPolicyChanged; }