export declare const EXPLICIT_PUBLIC_ORIGIN_ENV_KEYS: readonly ["WORKSPACE_OAUTH_ORIGIN", "VITE_WORKSPACE_OAUTH_ORIGIN", "APP_URL", "VITE_APP_URL", "BETTER_AUTH_URL", "VITE_BETTER_AUTH_URL", "URL", "DEPLOY_URL"]; export declare const WORKSPACE_GATEWAY_ORIGIN_ENV_KEYS: readonly ["WORKSPACE_GATEWAY_URL", "VITE_WORKSPACE_GATEWAY_URL"]; export declare function normalizeOrigin(raw: string | undefined): string | undefined; export declare function isLoopbackHost(host: string | undefined): boolean; export declare function isLoopbackOrigin(origin: string | undefined): boolean; export declare function firstOriginFromEnv(keys: readonly string[], options: { allowLoopback: boolean; }): string | undefined; export declare function getConfiguredOriginAllowlist(): Set; /** The allowlist minus platform-assigned origins, in declaration order. */ export declare function getAppDeclaredOrigins(): string[]; /** * The origin for a link the server hands out, given the request's. That * origin comes from Host or a forwarded header any caller can set, so once * the app declares where it lives, a request keeps its origin only if the * app trusts it, platform hostnames included, as sign-in redirects do. Any * other request gets the first declared origin, then a platform URL. * Loopback requests are local only without a public origin, and a loopback * origin is never handed to a request from elsewhere. With no origin left, * links remain relative. */ export declare function declaredLinkOrigin(requestOrigin: string | undefined): string | undefined; export declare function requestForwardedOrigin(request: Request | undefined): string | undefined;