import type { TagClass } from "liquidjs/dist/template/tag.js";
import type { RenderingContext } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
export type LiquidTagReturnsVarHandler = NewLiquidTagReturnsVarHandler | LegacyLiquidTagReturnsVarHandler;
export type NewLiquidTagReturnsVarHandler = (renderingContext: RenderingContext, input: {
    mainParameter: unknown;
    namedParameters: {
        [key: string]: unknown;
    };
    variableName: string;
}) => Generator | Promise<Generator> | unknown;
export type LegacyLiquidTagReturnsVarHandler = (renderingContext: RenderingContext, input: {
    namedParameters: {
        [key: string]: unknown;
    };
    variableName: string;
}) => Generator | Promise<Generator> | unknown;
export declare function createAssignLiquidTag(tagHandler: LegacyLiquidTagReturnsVarHandler, options: {
    legacySyntax: true;
}): TagClass;
export declare function createAssignLiquidTag(tagHandler: NewLiquidTagReturnsVarHandler): TagClass;
export declare function wrapLiquidTagPromise<T = unknown>(renderingContext: RenderingContext, promise: Promise<T>, tagName: string): Promise<T>;
export type LiquidTagReturnsHtmlHandler = (renderingContext: RenderingContext, parameters: {
    [key: string]: unknown;
}) => string | Promise<string>;
export declare function createInjectHtmlLiquidTag(tagHandler: LiquidTagReturnsHtmlHandler): TagClass;
