import { Bounds, Cursor, CursorStackSymbol, ElementBuilder, ElementOperations, Environment, GlimmerTreeChanges, GlimmerTreeConstruction, LiveBlock, Maybe, Option, UpdatableBlock, ModifierInstance } from '@glimmer/interfaces'; import { Stack } from '@glimmer/util'; import { AttrNamespace, SimpleComment, SimpleDocumentFragment, SimpleElement, SimpleNode, SimpleText } from '@simple-dom/interface'; import { CursorImpl } from '../bounds'; import { DynamicAttribute } from './attributes/dynamic'; export interface FirstNode { firstNode(): SimpleNode; } export interface LastNode { lastNode(): SimpleNode; } export declare class Fragment implements Bounds { private bounds; constructor(bounds: Bounds); parentElement(): SimpleElement; firstNode(): SimpleNode; lastNode(): SimpleNode; } export declare const CURSOR_STACK: CursorStackSymbol; export declare class NewElementBuilder implements ElementBuilder { dom: GlimmerTreeConstruction; updateOperations: GlimmerTreeChanges; constructing: Option; operations: Option; private env; [CURSOR_STACK]: Stack; private modifierStack; private blockStack; static forInitialRender(env: Environment, cursor: CursorImpl): NewElementBuilder; static resume(env: Environment, block: UpdatableBlock): NewElementBuilder; constructor(env: Environment, parentNode: SimpleElement, nextSibling: Option); protected initialize(): this; debugBlocks(): LiveBlock[]; get element(): SimpleElement; get nextSibling(): Option; get hasBlocks(): boolean; protected block(): LiveBlock; popElement(): void; pushSimpleBlock(): LiveBlock; pushUpdatableBlock(): UpdatableBlockImpl; pushBlockList(list: LiveBlock[]): LiveBlockList; protected pushLiveBlock(block: T, isRemote?: boolean): T; popBlock(): LiveBlock; __openBlock(): void; __closeBlock(): void; openElement(tag: string): SimpleElement; __openElement(tag: string): SimpleElement; flushElement(modifiers: Option): void; __flushElement(parent: SimpleElement, constructing: SimpleElement): void; closeElement(): Option; pushRemoteElement(element: SimpleElement, guid: string, insertBefore: Maybe): Option; __pushRemoteElement(element: SimpleElement, _guid: string, insertBefore: Maybe): Option; popRemoteElement(): void; protected pushElement(element: SimpleElement, nextSibling?: Maybe): void; private pushModifiers; private popModifiers; didAppendBounds(bounds: Bounds): Bounds; didAppendNode(node: T): T; didOpenElement(element: SimpleElement): SimpleElement; willCloseElement(): void; appendText(string: string): SimpleText; __appendText(text: string): SimpleText; __appendNode(node: SimpleNode): SimpleNode; __appendFragment(fragment: SimpleDocumentFragment): Bounds; __appendHTML(html: string): Bounds; appendDynamicHTML(value: string): void; appendDynamicText(value: string): SimpleText; appendDynamicFragment(value: SimpleDocumentFragment): void; appendDynamicNode(value: SimpleNode): void; private trustedContent; private untrustedContent; appendComment(string: string): SimpleComment; __appendComment(string: string): SimpleComment; __setAttribute(name: string, value: string, namespace: Option): void; __setProperty(name: string, value: unknown): void; setStaticAttribute(name: string, value: string, namespace: Option): void; setDynamicAttribute(name: string, value: unknown, trusting: boolean, namespace: Option): DynamicAttribute; } export declare class SimpleLiveBlock implements LiveBlock { private parent; protected first: Option; protected last: Option; protected nesting: number; constructor(parent: SimpleElement); parentElement(): SimpleElement; firstNode(): SimpleNode; lastNode(): SimpleNode; openElement(element: SimpleElement): void; closeElement(): void; didAppendNode(node: SimpleNode): void; didAppendBounds(bounds: Bounds): void; finalize(stack: ElementBuilder): void; } export declare class RemoteLiveBlock extends SimpleLiveBlock { constructor(parent: SimpleElement); } export declare class UpdatableBlockImpl extends SimpleLiveBlock implements UpdatableBlock { reset(): Option; } export declare class LiveBlockList implements LiveBlock { private readonly parent; boundList: LiveBlock[]; constructor(parent: SimpleElement, boundList: LiveBlock[]); parentElement(): SimpleElement; firstNode(): SimpleNode; lastNode(): SimpleNode; openElement(_element: SimpleElement): void; closeElement(): void; didAppendNode(_node: SimpleNode): void; didAppendBounds(_bounds: Bounds): void; finalize(_stack: ElementBuilder): void; } export declare function clientBuilder(env: Environment, cursor: CursorImpl): ElementBuilder; //# sourceMappingURL=element-builder.d.ts.map