import { Document, Node, Record, StructuredText } from './types'; export declare class RenderError extends Error { node: Node; constructor(message: string, node: Node); } export type TrasformFn = (...args: any[]) => any; export type RenderResult = ReturnType | ReturnType | ReturnType | null | undefined; export type RenderContext = { adapter: Adapter; node: N; ancestors: Node[]; key: string; children: Exclude, null | undefined>[] | undefined; }; export interface RenderRule { appliable: (node: Node) => boolean; apply: (ctx: RenderContext) => RenderResult; } export declare const renderRule: (guard: (node: Node) => node is N, transform: (ctx: RenderContext) => RenderResult) => RenderRule; export declare function transformNode(adapter: Adapter, node: Node, key: string, ancestors: Node[], renderRules: RenderRule[]): RenderResult; export type Adapter = { renderNode: H; renderText: T; renderFragment: F; }; export declare function render(adapter: Adapter, structuredTextOrNode: StructuredText | Document | Node | null | undefined, renderRules: RenderRule[]): RenderResult;