import { AbstractNode } from "../../../common/AbstractNode";
import { Comment } from "../../../common/Comment";
import { NodePositionInterface } from "../../../common/NodePositionInterface";
import { type InlineEelNode } from "./InlineEelNode";
import { TagAttributeNode } from "./TagAttributeNode";
import { TagNameNode } from "./TagNameNode";
import { TagSpreadEelAttributeNode } from "./TagSpreadEelAttributeNode";
import { TextNode } from "./TextNode";
export type TagNodeContent = Array<TagNode | TextNode | Comment | InlineEelNode>;
export declare class TagNode extends AbstractNode {
    name: string;
    begin: TagNameNode;
    end: TagNameNode | undefined;
    attributes: Array<TagSpreadEelAttributeNode | TagAttributeNode>;
    content: TagNodeContent;
    selfClosing: boolean;
    protected artificiallyClosed: boolean;
    constructor(position: NodePositionInterface, name: string, begin: TagNameNode, attributes: Array<TagSpreadEelAttributeNode | TagAttributeNode>, content: TagNodeContent, end?: TagNameNode | undefined, selfClosing?: boolean, parent?: AbstractNode | undefined);
    toString(intend?: number): string;
}
