import { GitLabApiClient } from './api'; import { ConfigService } from './config_service'; export declare enum ClientFeatureFlags { StreamCodeGenerations = "streamCodeGenerations", DuoWorkflow = "duoWorkflow", RemoteSecurityScans = "remoteSecurityScans" } export declare enum InstanceFeatureFlags { EditorAdvancedContext = "advanced_context_resolver", CodeSuggestionsContext = "code_suggestions_context", DuoAdditionalContext = "duo_additional_context" } export declare const INSTANCE_FEATURE_FLAG_QUERY: string; export declare const FeatureFlagService: import("@gitlab-org/di").InterfaceId; export interface FeatureFlagService { /** * Checks if a feature flag is enabled on the GitLab instance. * @see `IGitLabAPI` for how the instance is determined. * @requires `updateInstanceFeatureFlags` to be called first. */ isInstanceFlagEnabled(name: InstanceFeatureFlags): boolean; /** * Checks if a feature flag is enabled on the client. * @see `ConfigService` for client configuration. */ isClientFlagEnabled(name: ClientFeatureFlags): boolean; } export declare class DefaultFeatureFlagService { #private; constructor(api: GitLabApiClient, configService: ConfigService); /** * Checks if a feature flag is enabled on the GitLab instance. * @see `GitLabApiClient` for how the instance is determined. * @requires `updateInstanceFeatureFlags` to be called first. */ isInstanceFlagEnabled(name: InstanceFeatureFlags): boolean; /** * Checks if a feature flag is enabled on the client. * @see `ConfigService` for client configuration. */ isClientFlagEnabled(name: ClientFeatureFlags): boolean; }