/// <reference path="../../../../../../src/@types/@kano/common/index.d.ts" />
import { Part, IPartContext } from '../../part.js';
import { EventEmitter } from '@kano/common/index.js';
import { PartComponent } from '../../component.js';
declare class TouchComponent extends PartComponent {
    touchStart: EventEmitter;
    touchMove: EventEmitter;
    touchEnd: EventEmitter;
}
export declare class TouchPart extends Part {
    private _scale;
    private _width;
    private _height;
    private _rect;
    private _dx;
    private _dy;
    private _ongoingTouches;
    private _lastMoveEvent;
    /**
     * Gets the array index of an on-going touch.
     *
     * @param id
     *   The identifier of the Touch object.
     */
    protected _findOngoingTouch(touch: Touch): number;
    protected _addOngoingTouch(touch: Touch): void;
    protected _removeOngoingTouch(touch: Touch): void;
    core: TouchComponent;
    constructor();
    onInstall(context: IPartContext): void;
    resize(context: IPartContext): void;
    onTouchStart(callback: () => void): import("@kano/common/index.js").IDisposable;
    onTouchEnd(callback: () => void): import("@kano/common/index.js").IDisposable;
    onTouchMove(callback: () => void): import("@kano/common/index.js").IDisposable;
    readonly firstDx: number;
    readonly firstDy: number;
    readonly firstX: number | null;
    readonly firstY: number | null;
    forEach(cb: (x: number, y: number) => void): void;
}
export {};
