import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const RemoteAccessEndpointSchema: z.ZodObject<{
    url: z.ZodString;
    hostname: z.ZodString;
    port: z.ZodNumber;
    protocol: z.ZodEnum<{
        http: "http";
        https: "https";
    }>;
}, z.core.$strip>;
/**
 * Remote-access provider summary, surfaced to the admin UI's
 * "Remote Access" page. One row per registered `network-access`
 * provider (Cloudflare Tunnel, ngrok, Tailscale, etc.).
 */
declare const RemoteAccessProviderInfoSchema: z.ZodObject<{
    addonId: z.ZodString;
    displayName: z.ZodString;
    enabled: z.ZodBoolean;
    connected: z.ZodBoolean;
    endpoint: z.ZodNullable<z.ZodObject<{
        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 RemoteAccessProviderInfo = z.infer<typeof RemoteAccessProviderInfoSchema>;
/**
 * `remote-access` — singleton facade over the `network-access`
 * collection. Consumed by the admin UI's Remote Access page so an
 * operator can see at a glance which providers are configured, which
 * are connected, and which public endpoint each exposes.
 *
 * Mirrors the `authentication` / `turn-orchestrator` patterns: the
 * UI talks to the singleton, the singleton walks the collection.
 */
export declare const remoteAccessCapability: {
    readonly name: "remote-access";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly methods: {
        /** All registered remote-access providers + their live status. */
        readonly listProviders: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            addonId: z.ZodString;
            displayName: z.ZodString;
            enabled: z.ZodBoolean;
            connected: z.ZodBoolean;
            endpoint: z.ZodNullable<z.ZodObject<{
                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>;
        /**
         * Start a specific provider's tunnel. Per-provider config still
         * lives on the addon's settings panel; this is just the on/off
         * trigger so the admin UI can manage the lifecycle from one place.
         */
        readonly startProvider: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            url: z.ZodString;
            hostname: z.ZodString;
            port: z.ZodNumber;
            protocol: z.ZodEnum<{
                http: "http";
                https: "https";
            }>;
        }, z.core.$strip>, "mutation">;
        /** Stop a specific provider's tunnel (idempotent on already-stopped). */
        readonly stopProvider: 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 IRemoteAccessOrchestrator = InferProvider<typeof remoteAccessCapability>;
export { RemoteAccessEndpointSchema, RemoteAccessProviderInfoSchema };
//# sourceMappingURL=remote-access.cap.d.ts.map