import { types as t } from "@marko/compiler";
import { type Binding } from "./bindings";
import type { Reason } from "./reasons";
type Write = string | t.Expression | (() => undefined | string | t.Expression);
export declare function writeTo(path: t.NodePath<any>, trailer?: boolean): (strs: TemplateStringsArray, ...exprs: Write[]) => void;
export declare function flushBefore(path: t.NodePath<any>): void;
export declare function flushInto(path: t.NodePath<t.MarkoTag> | t.NodePath<t.Program>): t.NodePath<t.MarkoTagBody | t.Program>;
export declare function markNode(path: t.NodePath<t.MarkoTag | t.MarkoPlaceholder>, nodeBinding: Binding, reason: undefined | false | Reason, deferred?: boolean): void;
export {};
