import { types as t } from "@marko/compiler"; import { type Binding, type ParamBinding } from "./bindings"; import { type ParamsTree } from "./params-tree"; import { type KnownExprs } from "./reasons"; import { type Section } from "./sections"; import { type Sources } from "./sources"; declare const kParamsTree: unique symbol; declare const kKnownExprs: unique symbol; declare module "@marko/compiler/dist/types" { interface MarkoTagExtra { /** The dom binding a known tag holds its child's scope in. */ childScopeBinding?: Binding; /** The section a known tag renders: another template's, a `` body. */ childSection?: Section; /** The child's params tree the call site was analyzed against. */ [kParamsTree]?: ParamsTree; [kKnownExprs]?: KnownExprs; } } export interface KnownTagExtra extends t.MarkoTagExtra { childScopeBinding: Binding; childSection: Section; } export declare function knownTagAnalyze(tag: t.NodePath, childSection: Section, childParamsTree?: ParamsTree): void; export declare function analyzeRecursiveTags(): void; export declare function knownTagTranslateHTML(tag: t.NodePath, tagIdentifier: t.Expression): void; export declare function knownTagTranslateDOM(tag: t.NodePath, getBindingIdentifier: (binding: Binding, preferredName?: string, directContent?: boolean) => t.Identifier, callSetup: ((section: Section, childBinding: Binding) => void) | undefined): void; export declare function getCallSiteSources(param: ParamBinding): Sources | undefined; export declare function addTagVarBindings(section: Section): void; export declare function addKnownTagReasons(section: Section): void; export declare function callsOtherTemplateSetup(section: Section): boolean; export {};