import type { SerializableValue } from '../protocol/types.js';
export declare const BUILTIN_RAW_TEXT_TEMPLATE_KEY = "_et_builtin_raw_text";
export declare class BackgroundElementTemplateInstance {
    instanceId: number;
    type: string;
    parent: BackgroundElementTemplateInstance | null;
    firstChild: BackgroundElementTemplateInstance | null;
    lastChild: BackgroundElementTemplateInstance | null;
    nextSibling: BackgroundElementTemplateInstance | null;
    previousSibling: BackgroundElementTemplateInstance | null;
    attributeSlots: SerializableValue[];
    elementSlots: BackgroundElementTemplateInstance[][];
    private rawAttributeSlots;
    private hasEmittedCreate;
    get parentNode(): BackgroundElementTemplateInstance | null;
    get childNodes(): BackgroundElementTemplateInstance[];
    nodeType: number;
    constructor(type: string, initialAttributeSlots?: SerializableValue[]);
    emitCreate(): void;
    private isPendingCreate;
    private canEmitPatch;
    appendChild(child: BackgroundElementTemplateInstance): void;
    insertBefore(child: BackgroundElementTemplateInstance, beforeChild: BackgroundElementTemplateInstance | null, silent?: boolean): void;
    removeChild(child: BackgroundElementTemplateInstance, silent?: boolean): void;
    tearDown(): void;
    getRawAttributeSlot(attrSlotIndex: number): unknown;
    markCreateEmittedForHydration(): void;
    prepareAttributeSlotsForNative(): void;
    setAttribute(key: string, value: unknown): void;
    get text(): string;
    set text(value: string);
    get data(): string;
    set data(value: string);
}
export declare class BackgroundElementTemplateSlot extends BackgroundElementTemplateInstance {
    partId: number;
    constructor();
}
export declare function collectElementTemplateSubtreeHandleIds(root: BackgroundElementTemplateInstance): number[];
