unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
34 lines • 2.95 kB
TypeScript
import { type Variant } from 'unleash-client';
import type { MetricFlagContext } from 'unleash-client/lib/impact-metrics/metric-types.js';
import type { Context } from '../features/playground/feature-evaluator/index.js';
export type IFlagKey = 'accessLogs' | 'anonymiseEventLog' | 'encryptEmails' | 'enableLicense' | 'responseTimeWithAppNameKillSwitch' | 'maintenanceMode' | 'messageBanner' | 'strictSchemaValidation' | 'personalAccessTokensKillSwitch' | 'migrationLock' | 'demo' | 'advancedPlayground' | 'filterInvalidClientMetrics' | 'disableMetrics' | 'signals' | 'automatedActions' | 'celebrateUnleash' | 'feedbackPosting' | 'extendedUsageMetrics' | 'feedbackComments' | 'killScheduledChangeRequestCache' | 'estimateTrafficDataCost' | 'useMemoizedActiveTokens' | 'queryMissingTokens' | 'disableUpdateMaxRevisionId' | 'disablePublishUnannouncedEvents' | 'outdatedSdksBanner' | 'responseTimeMetricsFix' | 'disableShowContextFieldSelectionValues' | 'manyStrategiesPagination' | 'enableLegacyVariants' | 'extendedMetrics' | 'removeUnsafeInlineStyleSrc' | 'projectRoleAssignment' | 'originMiddlewareRequestLogging' | 'webhookDomainLogging' | 'releasePlans' | 'productivityReportEmail' | 'productivityReportUnsubscribers' | 'showUserDeviceCount' | 'memorizeStats' | 'streaming' | 'etagVariant' | 'deltaApi' | 'uniqueSdkTracking' | 'consumptionModel' | 'edgeObservability' | 'reportUnknownFlags' | 'lifecycleMetrics' | 'customMetrics' | 'impactMetrics' | 'createFlagDialogCache' | 'improvedJsonDiff' | 'crDiffView' | 'changeRequestApproverEmails' | 'paygTrialEvents' | 'eventGrouping' | 'paygInstanceStatsEvents' | 'timestampsInChangeRequestTimeline' | 'lifecycleGraphs' | 'githubAuth';
export type IFlags = Partial<{
[key in IFlagKey]: boolean | Variant;
}>;
export declare const defaultExperimentalOptions: IExperimentalOptions;
export interface IExperimentalOptions {
flags: IFlags;
externalResolver: IExternalFlagResolver;
}
export interface IFlagContext extends Context {
}
export interface IFlagResolver {
getAll: (context?: IFlagContext) => IFlags;
isEnabled: (expName: IFlagKey, context?: IFlagContext) => boolean;
getVariant: (expName: IFlagKey, context?: IFlagContext) => Variant;
getStaticContext: () => IFlagContext;
impactMetrics?: IImpactMetricsResolver;
}
export interface IExternalFlagResolver {
isEnabled: (flagName: IFlagKey, context?: IFlagContext) => boolean;
getVariant: (flagName: IFlagKey, context?: IFlagContext) => Variant;
getStaticContext: () => IFlagContext;
impactMetrics?: IImpactMetricsResolver;
}
export interface IImpactMetricsResolver {
defineCounter(name: string, help: string): any;
defineGauge(name: string, help: string): any;
incrementCounter(name: string, value?: number, metricsFlagContext?: MetricFlagContext): void;
updateGauge(name: string, value: number, metricsFlagContext?: MetricFlagContext): void;
}
//# sourceMappingURL=experimental.d.ts.map