import { Disposable } from '@gitlab-org/disposable'; import { StateCheckId, StateCheckContext } from './feature_state_management_types'; export interface StateCheckChangedEventData { checkId: StateCheckId; engaged: boolean; details?: string; } export interface StateCheck { id: T; engaged: boolean; init?: () => Promise; /** registers a listener that's called when the policy changes */ onChanged: (listener: (data: StateCheckChangedEventData) => void) => Disposable; details?: string; context?: StateCheckContext; }