import { JSONSchema } from '@squiz/json-schema-library'; import { BaseFormattedNodes, ComponentNode, FormattedTextFragment, FormattedTextTag, HigherOrderFormattedNodes, TextNode } from './formattedText'; import { FORMATTED_TEXT_SCHEMA_ID } from './formattedTextConstants'; export { FORMATTED_TEXT_SCHEMA_ID }; export interface FormattedNodeWithChildren { children: FormattedNode[]; } type FormattedNode = { type: string; }; type ResolutionOutput = string | T; type Resolver> = (node: Nodes, blockIndex?: number) => Promise; export type ResolverConfig> = { [N in Nodes as N['type']]: Resolver; } & { default?: Resolver; }; export type ResolvedChildNode> = DEFAULT_NODES extends { children: any[]; } ? Omit & { children: CHILD_NODE[]; } : DEFAULT_NODES; export type FullyResolvedNodes = ResolvedChildNode; export type BaseResolvedNodes = ResolvedChildNode; export type HigherOrderResolvedNodes = ResolvedChildNode; export type HigherOrderFormattedNodesMap = ResolverConfig; export type FullyResolvedNodesMap = ResolverConfig; interface ResolveOptions> { withJoin?: string; handleError?: (error: unknown, pointer: string) => O | never; } export declare function resolveFormattedTextNodes>(contentItem: any, contentSchema: JSONSchema, resolvers: Partial>, { withJoin, handleError }?: ResolveOptions): Promise; export declare function resolveFormattedText>>(node: I, resolvers: RC, blockIndex?: number): Promise> ? O : unknown>;