import { ParseOptions } from "./parser.js"; import { NodeContent, PartialNodeContent, TagNodeObject, TagNodeTree } from "./common.js"; export interface BBobCoreOptions extends ParseOptions { skipParse?: boolean; parser?: (source: string, options?: Options) => TagNodeObject[]; render?: (ast?: TagNodeTree, options?: Options) => string; data?: Data; } export type IterateCallback = (node: Content) => Content; export interface BBobPluginOptions { parse: BBobCoreOptions["parser"]; render: (ast?: TagNodeTree, options?: Options) => string; iterate: | Content>(t: Iterable, cb: IterateCallback) => Iterable; data: unknown | null; } export interface BBobPluginFunction { (tree: BBobCoreTagNodeTree, options: BBobPluginOptions): BBobCoreTagNodeTree; } export interface BBobCore { process(input: InputValue, opts?: Options): { readonly html: string; tree: BBobCoreTagNodeTree; raw: TagNodeObject[] | string; messages: unknown[]; }; } export interface BBobCoreTagNodeTree extends Array { messages: unknown[]; options: BBobCoreOptions; walk: (cb: IterateCallback) => BBobCoreTagNodeTree; match: (expression: PartialNodeContent | PartialNodeContent[], cb: IterateCallback) => BBobCoreTagNodeTree; } export type BBobPlugins = BBobPluginFunction | BBobPluginFunction[]; //# sourceMappingURL=core.d.ts.map