import { Component } from "../../hierarchy_object/Component";
import type { ComponentConstructor } from "../../hierarchy_object/ComponentConstructor";
import type { GridEventMap } from "./GridEventMap";
/**
 * for player interact with GridEventMap you should add this component to your player
 * and use PlayerGridEventInvoker.addGridEventMap to register your grid event map
 *
 *
 * disallow multiple component
 *
 * require components: `PlayerGridMovementController`
 */
export declare class PlayerGridEventInvoker extends Component {
    readonly disallowMultipleComponent: boolean;
    readonly requiredComponents: ComponentConstructor[];
    private _collideSize;
    private _playerGridMovementController;
    private readonly _gridEventMaps;
    private readonly onMoveToTarget;
    awake(): void;
    onDestroy(): void;
    /**
     * add GridEventMap to this player, you should add GridEventMap for interaction
     * @param gridEventMap grid event map
     */
    addGridEventMap(gridEventMap: GridEventMap): void;
    /**
     * remove GridEventMap from this player
     * @param gridEventMap grid event map
     */
    removeGridEventMap(gridEventMap: GridEventMap): void;
    /**
     * remove all GridEventMap from this player
     * @param gridEventMap grid event map
     */
    removeAllGridEventMap(): void;
    /**
     * collide size of `tryInvokeEvent` (default: 0.5)
     *
     * The larger this value, the greater the range of event invocation
     *
     * The default is to match the tile size of 1x1
     */
    get collideSize(): number;
    /**
     * collide size of `tryInvokeEvent` (default: 0.5)
     *
     * The larger this value, the greater the range of event invocation
     *
     * The default is to match the tile size of 1x1
     */
    set collideSize(value: number);
}
