import type { FeatureFlag } from "../types.js"; import { AppConfigurationClientLite } from "../client.js"; /** * A lightweight representation of Azure AppConfigurationClient. * @internal * {@link import("@azure/app-configuration").AppConfigurationClient} */ export type AppConfigurationClient = { listConfigurationSettings: (options?: FeatureFlagServiceOptions) => ListConfigurationSettingsResult; getConfigurationSetting: (settingId: SettingId, options?: FeatureFlagServiceOptions) => Promise; setConfigurationSetting: (configurationSetting: ConfigurationSetting, options?: FeatureFlagServiceOptions) => Promise; deleteConfigurationSetting: (settingId: SettingId, options?: FeatureFlagServiceOptions) => Promise; }; type SettingId = { etag?: string; key: string; label?: string; }; type ListConfigurationSettingsResult = { next(): Promise<{ done?: boolean; value: ConfigurationSetting; }>; [Symbol.asyncIterator](): ListConfigurationSettingsResult; }; /** * Representation of a entry (setting) in Azure App Configuration */ export type ConfigurationSetting = { etag?: string | undefined; key: string; label?: string | undefined; contentType?: string | undefined; tags?: { [propertyName: string]: string; } | undefined; value?: string | undefined; isReadOnly: boolean; lastModified?: Date | undefined; }; /** * Options for get all feature flags as record or list */ export type FeatureFlagServiceOptions = { acceptDateTime?: Date; labelFilter?: string; abortSignal?: AbortSignal; }; /** * Options for a feature flag by key */ export type FeatureFlagServiceWithKeyOptions = FeatureFlagServiceOptions & { keyFilter: string; }; export declare function invariantAppConfigurationClient(client: unknown, method: keyof AppConfigurationClient): asserts client is AppConfigurationClient; export declare function iterateAppConfigurationFeatureFlags(client: AppConfigurationClient | AppConfigurationClientLite, options: FeatureFlagServiceOptions | undefined, onFound: (flag: FeatureFlag) => void): Promise; export declare function extractFeatureFlagFromSetting(setting: ConfigurationSetting): FeatureFlag; /** * The content type for a FeatureFlag */ export declare const featureFlagContentType = "application/vnd.microsoft.appconfig.ff+json;charset=utf-8"; /** * The prefix for feature flags. */ export declare const featureFlagPrefix = ".appconfig.featureflag/"; /** * Lets you know if the ConfigurationSetting is a feature flag. * * [Checks if the content type is featureFlagContentType `"application/vnd.microsoft.appconfig.ff+json;charset=utf-8"`] */ export declare function isFeatureFlagSetting(setting: ConfigurationSetting): setting is ConfigurationSetting & Required>; export {};