export interface TrafficRule {
    id: string;
    name: string;
    layer: 'L3' | 'L4' | 'L7' | 'url';
    action: 'allow' | 'block' | 'log' | 'throttle';
    conditions: RuleCondition[];
    enabled: boolean;
    priority: number;
}
export interface RuleCondition {
    field: string;
    operator: string;
    value: string;
}
export interface URLFilter {
    id: string;
    pattern: string;
    type?: string;
    matchType?: string;
    action?: 'block' | 'allow' | 'log' | 'warn';
    category: string;
    enabled: boolean;
    applies_to?: string[];
    appliesTo?: string[];
    timeCondition?: {
        allDay?: boolean;
        startTime?: string;
        endTime?: string;
        days?: number[];
        timezone?: string;
    };
    blockedPageEnabled?: boolean;
    blockedPageTitle?: string;
    blockedPageMessage?: string;
    blockedPageRedirectUrl?: string;
}
export interface ConnectionInfo {
    protocol: string;
    localAddress: string;
    localPort: number;
    peerAddress: string;
    peerPort: number;
    state: string;
    process?: string;
    pid?: number;
}
export declare class NetworkCollector {
    private trafficRules;
    private urlFilters;
    private blockedConnections;
    collectConnections(): Promise<ConnectionInfo[]>;
    collectStats(): Promise<any[]>;
    updateTrafficRules(rules: TrafficRule[]): void;
    updateURLFilters(filters: URLFilter[]): void;
    getURLFilters(): URLFilter[];
    evaluateConnection(conn: ConnectionInfo): {
        action: string;
        rule?: TrafficRule;
    };
    evaluateURL(url: string): {
        action: string;
        filter?: URLFilter;
        category?: string;
    };
    private escapeRegex;
    private parseTimeToMinutes;
    private isTimeConditionActive;
    private wildcardToRegex;
    private wildcardMatches;
    private matchesUrlFilter;
    private matchesRule;
    private getFieldValue;
    private isInSubnet;
    getBlockedConnections(): any[];
}
//# sourceMappingURL=network.d.ts.map