import { Basic } from '../common/basic';
import { ResultType, Coord2DType } from '../common/data-type';
import { IPickerRectangle, IPickerMaterial, IPickerTilesNode, IRectPick } from '../common/interface/tool';
/**
 * @public
 * @class PickerController
 * @extends Basic
 */
declare class PickerController extends Basic {
    private apiClassName;
    private RectPickEntityAction;
    private PickerValidate;
    private Action;
    /**
     * @constructor
     * @param {any} obj
     */
    constructor(obj: any);
    /**
     * @public
     * @async
     * @function PickByScreenPos
     * @param {Coord2DType} screenPos
     * @returns {Promise<ResultType>}
     */
    PickByScreenPos(screenPos: Coord2DType): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function PickWorldPointByScreenPos
     * @param {Coord2DType} screenPos
     * @returns {Promise<ResultType>}
     */
    PickWorldPointByScreenPos(screenPos: Coord2DType): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function PickAesTilesNodeByScreenPos
     * @param {Coord2DType} screenPos
     * @param {Array<string>} EntityTypeFilter
     * @param {boolean} bFilterForExclude (default value is false)
     * @returns {Promise<ResultType>}
     */
    PickAesTilesNodeByScreenPos(screenPos: Coord2DType, EntityTypeFilter: Array<string>, bFilterForExclude?: boolean): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function PickAesTilesNodesByRectangle
     * @param {IPickerTilesNode} opt
     * @returns {Promise<ResultType>}
     */
    PickAesTilesNodesByRectangle(opt: IPickerTilesNode): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function PickEntityByRectangle
     * @param {IPickerRectangle} opt
     * @returns {Promise<ResultType>}
     */
    PickEntityByRectangle(opt: IPickerRectangle): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function PickMaterialByScreenPos
     * @param {IPickerMaterial} opt
     * @returns {Promise<ResultType>}
     */
    PickMaterialByScreenPos(opt: IPickerMaterial): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetEntitiesInViewport
     * @param {Array<string>} entityTypeFilter
     * @param {boolean} bFilterForExclude (optional)
     * @returns {Promise<ResultType>}
     */
    GetEntitiesInViewport(entityTypeFilter: Array<string>, bFilterForExclude?: boolean): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function StartRectPick
     * @param {Partial<IRectPick>} opt
     * @returns {Promise<ResultType>}
     */
    StartRectPick(opt?: Partial<IRectPick>): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function EndRectPick
     * @returns {Promise<ResultType>}
     */
    EndRectPick(): Promise<ResultType>;
}
export default PickerController;
