import { z } from "zod";
import { type McpResponse } from "../utils.js";
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
export declare const serverSecureSchema: {
    action: z.ZodEnum<{
        "secure-setup": "secure-setup";
        "secure-audit": "secure-audit";
        "firewall-setup": "firewall-setup";
        "firewall-add": "firewall-add";
        "firewall-remove": "firewall-remove";
        "firewall-status": "firewall-status";
        "domain-set": "domain-set";
        "domain-remove": "domain-remove";
        "domain-check": "domain-check";
        "domain-info": "domain-info";
    }>;
    server: z.ZodOptional<z.ZodString>;
    port: z.ZodOptional<z.ZodNumber>;
    protocol: z.ZodDefault<z.ZodEnum<{
        tcp: "tcp";
        udp: "udp";
    }>>;
    domain: z.ZodOptional<z.ZodString>;
    ssl: z.ZodDefault<z.ZodBoolean>;
};
type Action = z.infer<typeof serverSecureSchema.action>;
export declare const serverSecureOutputSchema: z.ZodObject<{
    result: z.ZodDiscriminatedUnion<[z.ZodObject<{
        action: z.ZodLiteral<"secure-setup">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        sshHardening: z.ZodBoolean;
        fail2ban: z.ZodBoolean;
        sshKeyCount: z.ZodNumber;
        hint: z.ZodOptional<z.ZodString>;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"secure-audit">;
        server: z.ZodString;
        ip: z.ZodString;
        score: z.ZodNumber;
        maxScore: z.ZodNumber;
        checks: z.ZodObject<{
            passwordAuth: z.ZodBoolean;
            rootLogin: z.ZodBoolean;
            fail2ban: z.ZodBoolean;
            sshPort: z.ZodBoolean;
        }, z.core.$strip>;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"firewall-setup">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"firewall-add">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"firewall-remove">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        warning: z.ZodOptional<z.ZodString>;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"firewall-status">;
        server: z.ZodString;
        ip: z.ZodString;
        active: z.ZodBoolean;
        rules: z.ZodArray<z.ZodString>;
        ruleCount: z.ZodNumber;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"domain-set">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        url: z.ZodString;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"domain-remove">;
        success: z.ZodBoolean;
        server: z.ZodString;
        ip: z.ZodString;
        message: z.ZodString;
        url: z.ZodString;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"domain-check">;
        server: z.ZodString;
        ip: z.ZodString;
        domain: z.ZodString;
        resolvedIp: z.ZodString;
        match: z.ZodBoolean;
        hint: z.ZodOptional<z.ZodString>;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        action: z.ZodLiteral<"domain-info">;
        server: z.ZodString;
        ip: z.ZodString;
        fqdn: z.ZodNullable<z.ZodString>;
        message: z.ZodString;
        suggested_actions: z.ZodArray<z.ZodObject<{
            command: z.ZodString;
            reason: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>], "action">;
}, z.core.$strip>;
export type ServerSecureOutput = z.infer<typeof serverSecureOutputSchema>;
export declare function handleServerSecure(params: {
    action: Action;
    server?: string;
    port?: number;
    protocol?: "tcp" | "udp";
    domain?: string;
    ssl?: boolean;
}, mcpServer?: McpServer): Promise<McpResponse>;
export {};
//# sourceMappingURL=serverSecure.d.ts.map