import { type SshCommand } from "../utils/sshCommand.js";
import type { FirewallStatus, FirewallProtocol } from "../types/index.js";
import type { Platform } from "../types/index.js";
export declare const PROTECTED_PORTS: number[];
export declare const BARE_PORTS: number[];
export declare function isValidPort(port: number): boolean;
export declare function isProtectedPort(port: number): boolean;
export declare function getPortsForPlatform(platform?: Platform | "bare"): readonly number[];
export declare function buildFirewallSetupCommand(platform?: Platform): SshCommand;
export declare function buildUfwRuleCommand(action: "allow" | "delete allow", port: number, protocol?: FirewallProtocol): SshCommand;
export declare function buildUfwStatusCommand(): SshCommand;
export declare function parseUfwStatus(stdout: string): FirewallStatus;
export interface FirewallResult {
    success: boolean;
    error?: string;
    hint?: string;
    warning?: string;
}
export interface FirewallStatusResult {
    status: FirewallStatus;
    error?: string;
    hint?: string;
}
export declare function setupFirewall(ip: string, platform?: Platform): Promise<FirewallResult>;
export declare function addFirewallRule(ip: string, port: number, protocol?: FirewallProtocol): Promise<FirewallResult>;
export declare function removeFirewallRule(ip: string, port: number, protocol?: FirewallProtocol, platform?: Platform): Promise<FirewallResult>;
export declare function getFirewallStatus(ip: string): Promise<FirewallStatusResult>;
export declare function firewallSetup(ip: string, name: string, dryRun: boolean, isBare?: boolean, platform?: Platform): Promise<void>;
//# sourceMappingURL=firewall.d.ts.map