import type { BuiltinValue } from '../core/editor-values.js'; type ForbiddenFieldPathSegment = '__proto__' | 'constructor' | 'prototype'; type StringFieldKey = Exclude, ForbiddenFieldPathSegment>; type TraversableFieldValue = NonNullable extends BuiltinValue | readonly unknown[] | ReadonlyMap | ReadonlySet ? never : NonNullable extends object ? NonNullable : never; type FieldPathAtDepth = TDepth['length'] extends 5 ? never : { [TKey in StringFieldKey]: TKey | (TraversableFieldValue extends never ? never : `${TKey}.${FieldPathAtDepth, readonly [...TDepth, unknown]>}`); }[StringFieldKey]; /** * Safe object path for a form-value object, limited to five object levels. */ export type FieldPath = FieldPathAtDepth; type FieldPathValueAtPath = TPath extends `${infer THead}.${infer TTail}` ? THead extends keyof NonNullable ? FieldPathValueAtPath[THead], TTail> : never : TPath extends keyof NonNullable ? NonNullable[TPath] : never; /** Value represented by a safe form field path. */ export type FieldPathValue> = FieldPathValueAtPath; /** * Parses and validates a runtime field path. * * @param fieldPath - Consumer-supplied dot-separated field path. * @returns Validated path segments. * @throws EditorConfigurationError for malformed, array-like, or * prototype-related segments. */ export declare function parseFieldPath(fieldPath: string): readonly string[]; export {};