import { ServiceContainer } from '../services/ServiceContainer.js';
import { IDesignItem } from './IDesignItem.js';
import { InstanceServiceContainer } from '../services/InstanceServiceContainer.js';
import { ChangeGroup } from '../services/undoService/ChangeGroup.js';
import { NodeType } from './NodeType.js';
import { ISize } from '../../interfaces/ISize.js';
import { IStyleRule } from '../services/stylesheetService/IStylesheetService.js';
import { TypedEvent } from '@node-projects/base-custom-webcomponent';
import { IPlacementService } from '../services/placementService/IPlacementService.js';
export declare const hideAtDesignTimeAttributeName = "node-projects-hide-at-design-time";
export declare const hideAtRunTimeAttributeName = "node-projects-hide-at-run-time";
export declare const lockAtDesignTimeAttributeName = "node-projects-lock-at-design-time";
export declare const forceHoverAttributeName = "node-projects-force-hover";
export declare const forceActiveAttributeName = "node-projects-force-active";
export declare const forceVisitedAttributeName = "node-projects-force-visited";
export declare const forceFocusAttributeName = "node-projects-force-focus";
export declare const forceFocusWithinAttributeName = "node-projects-force-focus-within";
export declare const forceFocusVisibleAttributeName = "node-projects-force-focus-visible";
export declare class DesignItem implements IDesignItem {
    lastContainerSize: ISize;
    parsedNode: any;
    node: Node;
    view: Node;
    serviceContainer: ServiceContainer;
    instanceServiceContainer: InstanceServiceContainer;
    nodeReplaced: TypedEvent<void>;
    get window(): Window & typeof globalThis;
    get document(): Document;
    get usableContainer(): Element | Document | ShadowRoot;
    clone(): Promise<IDesignItem>;
    allMatching(selectors: string): Generator<IDesignItem, void, any>;
    replaceNode(newNode: Node): void;
    get nodeType(): NodeType;
    private _attributes;
    get hasAttributes(): boolean;
    hasAttribute(name: string): boolean;
    getAttribute(name: string): string;
    attributes(): Generator<[string, string], void, unknown>;
    _withoutUndoSetAttribute(name: string, value: string): void;
    _withoutUndoRemoveAttribute(name: string): void;
    private _styles;
    get hasStyles(): boolean;
    hasStyle(name: string): boolean;
    getStyle(name: string): string;
    styles(): Generator<[string, string], void, unknown>;
    _withoutUndoSetStyle(name: string, value: string): void;
    _withoutUndoRemoveStyle(name: string): void;
    private static _designItemMap;
    get element(): Element;
    get name(): string;
    get id(): string;
    set id(value: string);
    get isRootItem(): boolean;
    childrenRect(selectors: string): Generator<IDesignItem, void, any>;
    _childArray: IDesignItem[];
    get hasChildren(): boolean;
    children(recursive?: boolean): IterableIterator<IDesignItem>;
    get childCount(): number;
    get firstChild(): IDesignItem;
    private _parent;
    get parent(): IDesignItem;
    indexOf(designItem: IDesignItem): number;
    insertAdjacentElement(designItem: IDesignItem, where: InsertPosition): void;
    insertChild(designItem: IDesignItem, index?: number): void;
    removeChild(designItem: IDesignItem): void;
    remove(): void;
    clearChildren(): void;
    get hasContent(): boolean;
    get content(): string;
    set content(value: string);
    get innerHTML(): string;
    set innerHTML(value: string);
    get isEmptyTextNode(): boolean;
    get hideAtDesignTime(): boolean;
    set hideAtDesignTime(value: boolean);
    get hideAtRunTime(): boolean;
    set hideAtRunTime(value: boolean);
    get lockAtDesignTime(): boolean;
    set lockAtDesignTime(value: boolean);
    static createDesignItemFromInstance(node: Node, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): DesignItem;
    querySelectorAll<T extends HTMLElement>(selectors: string): NodeListOf<T>;
    removeDesignerAttributesAndStylesFromChildren(): void;
    updateChildrenFromNodesChildren(): void;
    _internalUpdateChildrenFromNodesChildren(): any[];
    _backupWhenEditContent: any;
    _inEditContent: boolean;
    editContent(): void;
    editContentFinish(): void;
    constructor(node: Node, parsedNode: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer);
    setView(node: Element): void;
    openGroup(title: string): ChangeGroup;
    getOrCreateDesignItem(node: Node): IDesignItem;
    static GetOrCreateDesignItem(node: Node, parsedNode: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): IDesignItem;
    static GetDesignItem(node: Node): IDesignItem;
    setStyle(name: string, value?: string | null, important?: boolean): void;
    setStyleAsync(name: string, value?: string | null, important?: boolean): Promise<void>;
    removeStyle(name: string): void;
    updateStyleInSheetOrLocal(name: string, value?: string | null, important?: boolean, forceSet?: boolean): void;
    updateStyleInSheetOrLocalAsync(name: string, value?: string | null, important?: boolean, forceSet?: boolean): Promise<void>;
    getStyleFromSheetOrLocal(name: string, fallback?: string): string;
    getStyleFromSheetOrLocalOrComputed(name: string, fallback?: string): string;
    getComputedStyleProperty(name: string, fallback?: string): string;
    getComputedStyle(): CSSStyleDeclaration;
    _stylesCache: IStyleRule[];
    _cacheClearTimer: NodeJS.Timeout;
    getAllStyles(): IStyleRule[];
    setAttribute(name: string, value?: string | null): void;
    removeAttribute(name: string): void;
    setPropertyAndAttribute(name: string, value?: string | null): void;
    removePropertyAndAttribute(name: string): void;
    setProperty(name: string, value?: any): void;
    _insertChildInternal(designItem: DesignItem, index?: number): void;
    _insertChildsInternal(designItems: DesignItem[], index?: number): void;
    _removeChildInternal(designItem: IDesignItem): void;
    _refreshIfStyleSheet(): void;
    getPlacementService(style?: CSSStyleDeclaration): IPlacementService;
    static createDesignItemFromImageBlob(serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, data: Blob): Promise<IDesignItem>;
    get hasForcedCss(): boolean;
    get cssForceHover(): boolean;
    set cssForceHover(value: boolean);
    get cssForceActive(): boolean;
    set cssForceActive(value: boolean);
    get cssForceVisited(): boolean;
    set cssForceVisited(value: boolean);
    get cssForceFocus(): boolean;
    set cssForceFocus(value: boolean);
    get cssForceFocusWithin(): boolean;
    set cssForceFocusWithin(value: boolean);
    get cssForceFocusVisible(): boolean;
    set cssForceFocusVisible(value: boolean);
}
