import type { TgdContext } from "../../context";
import { TgdEvent } from "../../event";
import type { TgdInputPointerEventMove, TgdInputPointerEventTap, TgdInputPointerEventTapMultiple, TgdInputPointerEventZoom } from "../../index";
import type { TgdTexture2D } from "../../texture";
import { TgdPainter } from "../painter";
export interface TgdPainterOverlayOptions {
    /**
     * * -1: left
     * *  0: center
     * * +1: right
     */
    alignX: number;
    /**
     * * -1: bottom
     * *  0: center
     * * +1: top
     */
    alignY: number;
    /**
     * Width in pixels
     */
    width: number;
    /**
     * Height in pixels
     */
    height: number;
    /**
     * Margin in pixels.
     */
    margin: number | [vertical: number, horizontal: number] | [top: number, right: number, bottom: number, left: number];
    /**
     * Texture to display in the overlay
     */
    texture: TgdTexture2D;
    scaleX: number;
    scaleY: number;
    /**
     * Z position.
     */
    z: number;
}
export declare class TgdPainterOverlay extends TgdPainter {
    readonly context: TgdContext;
    readonly eventResize: TgdEvent<{
        width: number;
        height: number;
    }>;
    readonly eventTap: TgdEvent<Readonly<TgdInputPointerEventTap>>;
    readonly eventTapMultiple: TgdEvent<Readonly<TgdInputPointerEventTapMultiple>>;
    readonly eventMoveStart: TgdEvent<Readonly<TgdInputPointerEventMove>>;
    readonly eventMove: TgdEvent<Readonly<TgdInputPointerEventMove>>;
    readonly eventHover: TgdEvent<Readonly<TgdInputPointerEventMove>>;
    readonly eventMoveEnd: TgdEvent<Readonly<TgdInputPointerEventMove>>;
    readonly eventZoom: TgdEvent<Readonly<TgdInputPointerEventZoom>>;
    alignX: number;
    alignY: number;
    scaleX: number;
    scaleY: number;
    width?: number;
    height?: number;
    marginTop: number;
    marginRight: number;
    marginBottom: number;
    marginLeft: number;
    z: number;
    texture: TgdTexture2D | undefined;
    private lastWidth;
    private lastHeight;
    private prg;
    private vao;
    constructor(context: TgdContext, { alignX, alignY, scaleX, scaleY, width, height, margin, z, texture, }?: Partial<TgdPainterOverlayOptions>);
    private readonly handleZoom;
    private readonly handleTap;
    private readonly handleTapMultiple;
    private readonly handleHover;
    private readonly handleMove;
    private readonly handleMoveStart;
    private readonly handleMoveEnd;
    delete(): void;
    paint(time: number, delta: number): void;
    private checkForResizeEvent;
    private xScreenToLayout;
    private readonly xLayoutToScreen;
    private yScreenToLayout;
    private readonly yLayoutToScreen;
}
//# sourceMappingURL=overlay.d.ts.map