import { type Config as ConfigProto } from '@dxos/protocols/proto/dxos/config'; export declare const FILE_DEFAULTS = "defaults.yml"; export declare const FILE_ENVS = "envs-map.yml"; export declare const FILE_DYNAMICS = "config.yml"; type DotPrefix = T extends '' ? '' : `.${T}`; /** * Returns all dot-separated nested keys for an object. * * Read more: https://stackoverflow.com/a/68404823. */ type DotNestedKeys = (T extends object ? { [K in Exclude]: `${K}${DotPrefix>}`; }[Exclude] : '') extends infer D ? Extract : never; /** * Parse a dot separated nested key into an array of keys. * * Example: 'services.signal.server' -> ['services', 'signal', 'server']. */ export type ParseKey = K extends `${infer L}.${infer Rest}` ? [L, ...ParseKey] : [K]; /** * Array of types that can act as an object key. */ type Keys = (keyof any)[]; /** * Retrieves a property type in a series of nested objects. * * Read more: https://stackoverflow.com/a/61648690. */ export type DeepIndex = KS extends [infer F, ...infer R] ? F extends keyof Exclude ? R extends Keys ? DeepIndex[F], R, Fail> : Fail : Fail : T; /** * Any nested dot separated key that can be in config. */ export type ConfigKey = DotNestedKeys; export {}; //# sourceMappingURL=types.d.ts.map