/**
 * mesh-orchestrator — singleton facade over the `mesh-network`
 * collection. Mirrors the `remote-access` / `turn-orchestrator`
 * pattern: the admin UI talks to ONE cap, the cap walks the
 * collection and aggregates per-provider status.
 */
import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const MeshProviderInfoSchema: z.ZodObject<{
    addonId: z.ZodString;
    displayName: z.ZodString;
    kind: z.ZodEnum<{
        other: "other";
        tailscale: "tailscale";
        headscale: "headscale";
        zerotier: "zerotier";
    }>;
    joined: z.ZodBoolean;
    meshIp: z.ZodString;
    magicDnsHostname: z.ZodString;
    peerCount: z.ZodNumber;
    endpoints: z.ZodReadonly<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        scope: z.ZodEnum<{
            public: "public";
            mesh: "mesh";
        }>;
        url: z.ZodString;
        hostname: z.ZodString;
        port: z.ZodNumber;
        protocol: z.ZodEnum<{
            http: "http";
            https: "https";
        }>;
    }, z.core.$strip>>>;
    error: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type MeshProviderInfo = z.infer<typeof MeshProviderInfoSchema>;
export declare const meshOrchestratorCapability: {
    readonly name: "mesh-orchestrator";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly methods: {
        /** All registered mesh-network providers + live status. */
        readonly listProviders: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            addonId: z.ZodString;
            displayName: z.ZodString;
            kind: z.ZodEnum<{
                other: "other";
                tailscale: "tailscale";
                headscale: "headscale";
                zerotier: "zerotier";
            }>;
            joined: z.ZodBoolean;
            meshIp: z.ZodString;
            magicDnsHostname: z.ZodString;
            peerCount: z.ZodNumber;
            endpoints: z.ZodReadonly<z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                label: z.ZodString;
                scope: z.ZodEnum<{
                    public: "public";
                    mesh: "mesh";
                }>;
                url: z.ZodString;
                hostname: z.ZodString;
                port: z.ZodNumber;
                protocol: z.ZodEnum<{
                    http: "http";
                    https: "https";
                }>;
            }, z.core.$strip>>>;
            error: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
        /**
         * Join the mesh of a specific provider. Per-provider config still
         * lives on its settings panel; the orchestrator forwards.
         */
        readonly joinProvider: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
            authKey: z.ZodString;
            hostname: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodObject<{
            joined: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
        readonly leaveProvider: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
    };
};
export type IMeshOrchestrator = InferProvider<typeof meshOrchestratorCapability>;
export {};
//# sourceMappingURL=mesh-orchestrator.cap.d.ts.map