import { ReadonlyArray, type array } from "./arrays.ts"; import type { requireKeys } from "./records.ts"; import { type JsonArray } from "./serialize.ts"; export type StringifyPathOptions = requireKeys<{ stringifySymbol?: (s: symbol) => string; stringifyNonKey?: (o: Exclude) => string; }, stringifiable extends PropertyKey ? never : "stringifyNonKey">; export type StringifyPathFn = (path: array, ...[opts]: [stringifiable] extends [PropertyKey] ? [ opts?: StringifyPathOptions ] : NoInfer<[opts: StringifyPathOptions]>) => string; export type AppendStringifiedKeyFn = (path: string, prop: stringifiable, ...[opts]: [stringifiable] extends [PropertyKey] ? [ opts?: StringifyPathOptions ] : NoInfer<[opts: StringifyPathOptions]>) => string; export declare const appendStringifiedKey: AppendStringifiedKeyFn; export declare const stringifyPath: StringifyPathFn; export declare class ReadonlyPath extends ReadonlyArray { private cache; constructor(...items: array); toJSON(): JsonArray; stringify(): string; stringifyAncestors(): readonly string[]; }