import type { GeneratedConfig } from './generated-config-types' type PayloadTaggingRules = ReturnType | [] export interface ConfigProperties extends GeneratedConfig { cloudPayloadTagging: GeneratedConfig['cloudPayloadTagging'] & { requestsEnabled: boolean responsesEnabled: boolean rules: PayloadTaggingRules } debug: boolean instrumentationSource: 'manual' | 'ssi' isCiVisibility: boolean isServiceNameInferred: boolean isServiceUserProvided: boolean logger: import('../../../../index').TracerOptions['logger'] | undefined lookup: NonNullable readonly parsedDdTags: Record plugins: boolean sampler: { rateLimit: number rules: import('../../../../index').SamplingRule[] sampleRate: number | undefined spanSamplingRules: import('../../../../index').SpanSamplingRule[] | undefined } stableConfig: { fleetEntries: Record localEntries: Record warnings: string[] | undefined } tracePropagationStyle: GeneratedConfig['tracePropagationStyle'] } type Primitive = bigint | boolean | null | number | string | symbol | undefined type Terminal = Date | Function | Primitive | RegExp | URL type KnownStringKeys = Extract<{ [K in keyof T]: K extends string ? string extends K ? never : K : never }[keyof T], string> type NestedConfigPath = [NonNullable] extends [Terminal] ? never : [NonNullable] extends [readonly unknown[]] ? never : [NonNullable] extends [object] ? ConfigPathFor> : never type ConfigPathFor = { [K in KnownStringKeys]: | K | (NestedConfigPath extends never ? never : `${K}.${NestedConfigPath}`) }[KnownStringKeys] type ConfigPathValueFor = TPath extends `${infer TKey}.${infer TRest}` ? TKey extends KnownStringKeys ? ConfigPathValueFor, TRest> : never : TPath extends KnownStringKeys ? T[TPath] : never export type ConfigKey = KnownStringKeys export type ConfigPath = ConfigPathFor export type ConfigPathValue = ConfigPathValueFor export type ConfigDefaults = Partial<{ [TPath in ConfigPath]: ConfigPathValue }>