You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
import type { Document } from '../doc/Document.js'; |
|
import type { stringify } from '../stringify/stringify.js'; |
|
import { Node } from './Node.js'; |
|
export interface AnchorData { |
|
aliasCount: number; |
|
count: number; |
|
res: unknown; |
|
} |
|
export interface ToJSContext { |
|
anchors: Map<Node, AnchorData>; |
|
doc: Document; |
|
keep: boolean; |
|
mapAsMap: boolean; |
|
mapKeyWarned: boolean; |
|
maxAliasCount: number; |
|
onCreate?: (res: unknown) => void; |
|
/** Requiring this directly in Pair would create circular dependencies */ |
|
stringify: typeof stringify; |
|
} |
|
/** |
|
* Recursively convert any node or its contents to native JavaScript |
|
* |
|
* @param value - The input value |
|
* @param arg - If `value` defines a `toJSON()` method, use this |
|
* as its first argument |
|
* @param ctx - Conversion context, originally set in Document#toJS(). If |
|
* `{ keep: true }` is not set, output should be suitable for JSON |
|
* stringification. |
|
*/ |
|
export declare function toJS(value: any, arg: string | null, ctx?: ToJSContext): any;
|
|
|