import type { ProviderDetection, RemoteProvider, RemoteProviderId } from './types'; /** * Preference order, most preferred first. * * Tailscale is first because it exposes the server only to the user's own * tailnet; the Cloudflare Quick Tunnel puts it on the public internet. The * order is data, not control flow — being second here never causes a fallback. */ export declare const REMOTE_PROVIDER_ORDER: readonly RemoteProviderId[]; /** The shipped Providers, in `REMOTE_PROVIDER_ORDER`. */ export declare function createRemoteProviders(): RemoteProvider[]; /** One Provider and what probing it just said. */ export interface ProviderCandidate { provider: RemoteProvider; detection: ProviderDetection; } /** * Probes every Provider and returns all of them in preference order. * * Every candidate comes back, including the unusable ones: the caller needs the * `reason` of the preferred Provider to explain why it is falling through to a * question rather than to a tunnel. * * A Provider whose `detect()` throws is reported as unavailable rather than * taking down the probe — a broken `tailscale` binary must not stop the user * from seeing that `cloudflared` exists. */ export declare function detectRemoteProviders(providers?: readonly RemoteProvider[]): Promise; //# sourceMappingURL=provider-registry.d.ts.map