import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
/**
 * A single ICE TURN/STUN server entry, shape compatible with
 * `RTCIceServer` in the WebRTC spec.
 */
declare const TurnServerSchema: z.ZodObject<{
    urls: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
    username: z.ZodOptional<z.ZodString>;
    credential: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * turn-provider — system collection of TURN/STUN server providers.
 *
 * Consumed by `webrtc` providers (e.g. addon-go2rtc) when building the
 * ICE server list for an offer. Multiple providers can coexist
 * (Cloudflare, self-hosted coturn, Twilio, etc.) — the webrtc layer
 * concatenates servers from all registered implementations.
 *
 * Exposed over tRPC so that out-of-process addons (forked workers or
 * remote agents) can also enumerate available TURN servers without
 * requiring in-process access to the capability registry.
 */
export declare const turnProviderCapability: {
    readonly name: "turn-provider";
    readonly scope: "system";
    readonly mode: "collection";
    readonly methods: {
        /**
         * Return the current list of TURN/STUN servers with credentials.
         * Implementations may fetch fresh short-lived credentials on each call
         * (e.g. Cloudflare API) — consumers SHOULD call this per-session.
         */
        readonly getTurnServers: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            urls: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
            username: z.ZodOptional<z.ZodString>;
            credential: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type ITurnProvider = InferProvider<typeof turnProviderCapability>;
export { TurnServerSchema };
//# sourceMappingURL=turn-provider.cap.d.ts.map