export declare type Action = ('-A' | '-C' | '-D' | '-I' | '-R'); export declare type Protocol = ('tcp' | 'udp' | 'all'); export declare type Port = [number, Protocol]; export interface Rule { action?: Action; protocol?: Protocol; src?: string; dst?: string; dport?: string; sport?: string; in?: string; out?: string; chain?: string; target?: string; } export declare type RuleReducer = (rule?: Rule) => Rule; export declare const allow: RuleReducer; export declare const reject: RuleReducer; export declare const append: RuleReducer; export declare const check: RuleReducer; export declare const insert: RuleReducer; export declare const deleteRule: RuleReducer; export declare const onInput: RuleReducer; export declare const onForward: RuleReducer; export declare const onOutput: RuleReducer; export declare const tcp: RuleReducer; export declare const udp: RuleReducer; export declare const toPort: ([port, protocol]: [number, "all" | "udp" | "tcp"]) => RuleReducer; export declare const fromPort: ([port, protocol]: [number, "all" | "udp" | "tcp"]) => RuleReducer; export declare const toPortNumberRange: (startPort: number, endPort: number) => (rule?: Rule) => Rule; export declare const fromPortNumberRange: (startPort: number, endPort: number) => (rule?: Rule) => Rule; export declare const toInterface: (networkInterface: string) => RuleReducer; export declare const fromInterface: (networkInterface: string) => RuleReducer; export declare const block: RuleReducer; export declare function reduceRule(ruleReducers: RuleReducer[], initial?: Rule): Rule; export default function iptables(rule: (Rule | RuleReducer)): Promise; export declare function iptablesIdempotent(rule: Rule): Promise;