import { types as t } from "@marko/compiler"; import { type ForType } from "./branch-tag"; export declare function assertNoSpreadAttrs(tag: t.NodePath): void; export declare function assertOnlyValueAttr(tag: t.NodePath, required: true, change?: boolean, hint?: (attr: t.MarkoAttribute) => string | undefined): t.MarkoAttribute; export declare function assertOnlyValueAttr(tag: t.NodePath, required?: boolean, change?: boolean, hint?: (attr: t.MarkoAttribute) => string | undefined): t.MarkoAttribute | undefined; export declare function assertHasVar(tag: t.NodePath, hint?: string | ((tag: t.NodePath) => string)): void; export declare function assertIdentifierVar(tag: t.NodePath): void; export declare function assertNoTagVarMutation(tag: t.NodePath): void; export declare function assertHasBody(tag: t.NodePath): void; export declare function assertNoBodyContent(tag: t.NodePath): void; export declare function buildAttrsError(tag: t.NodePath, attrs: t.MarkoTag["attributes"], msg: string): Error; export declare function buildAttrNameError(tag: t.NodePath, attr: t.MarkoAttribute, msg: string): Error; /** The loop a `` tag's attributes run, which it requires. */ export declare function assertForType(tag: t.NodePath): ForType; /** The attributes a loop of `type` takes, besides `by=`. */ export declare function getForAttrs(type: ForType): string[]; /** Throws for a param that a loop of `type` never supplies. */ export declare function assertForParams(tag: t.NodePath, type: ForType): void;