import type { FeatureFlags } from '@vizor-vr/shared'; /** * Tier gating for player features (webxr, spatialAudio, tours, cinema, playlist, * …). This is the feature-flag analogue of `resolveFormatGate` in format-gate.ts. * * Per product decision the player degrades gracefully rather than hard-failing: * a tier that lacks a feature falls back to a sensible baseline (e.g. a tour * shows its start panorama without portal navigation, a playlist plays its first * item, spatial audio plays as plain stereo) instead of blocking. So the only * two outcomes here are `allow` (feature licensed) and `degrade` (feature not * licensed — the caller applies its own fallback). A caller that has *no* * sensible fallback can still choose to render an upgrade overlay on `degrade`. */ export type FeatureGateDecision = { action: 'allow'; } | { action: 'degrade'; }; /** * Decide whether a feature may run under the current license. * * @param _feature the feature flag name (kept for call-site clarity + future * per-feature policy; the decision today depends only on `enabled`). * @param enabled whether the resolved license enables the feature. */ export declare function resolveFeatureGate(_feature: keyof FeatureFlags, enabled: boolean): FeatureGateDecision; //# sourceMappingURL=feature-gate.d.ts.map