import { HttpClient } from '@angular/common/http'; import { AnalyticsService } from './firebase/analytics.service'; import * as i0 from "@angular/core"; export interface UserFeature { key: string; enabled: boolean; rolloutPercentage?: number; rolloutHash?: string; } export declare class FeatureControlService { private http; private analytics?; private features; private isLoaded; private previousState; constructor(http: HttpClient, analytics?: AnalyticsService); private logFeatureEvent; /** * Load user features from backend. * Call this during app initialization (AppComponent ctor or effect). * Logs feature state changes to Firebase Analytics. */ loadUserFeatures(): Promise; /** * Check if a feature is enabled for the current user. * Returns true if feature is not found (optimistic default). * If rollout percentage is set, uses consistent hashing for canary rollouts. */ isEnabled(featureKey: string): boolean; /** * Get a computed signal for a feature. * Use in templates: *ngIf="featureEnabled('oauth_facebook')()" * Or in component: featureEnabled('payment_settings'). */ featureEnabled(featureKey: string): () => boolean; /** * Get all features for debugging (admin only). */ getAllFeatures(): Map; /** * Check if features have been loaded. */ isReady(): boolean; /** * Watch for feature changes (for testing/demo purposes). */ watchFeatures(): import("@angular/core").WritableSignal>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }