import { Part, IPartContext } from '../../part.js';
import { Transform } from '../../components/transform.js';
export declare abstract class DOMPart<T extends HTMLElement = HTMLElement> extends Part {
    protected _el: T;
    transform: Transform;
    constructor();
    onInstall(context: IPartContext): void;
    render(): void;
    renderComponents(ctx: CanvasRenderingContext2D): Promise<void>;
    applyTransform(ctx: CanvasRenderingContext2D): void;
    abstract getElement(): T;
    turnCW(a: number): void;
    turnCCW(a: number): void;
    moveAlong(distance: number): void;
    move(x: number, y: number): void;
    moveTo(x: number, y: number): void;
    setScale(scale: number): void;
    opacity: number;
    readonly x: number;
    readonly y: number;
    readonly scale: number;
    rotation: number;
    onClick(callback: () => void): void;
    dispose(): void;
}
