export default MapRenderer;
/**
 * @abstract
 */
declare class MapRenderer extends Disposable {
    /**
     * @param {import("../PluggableMap.js").default} map Map.
     */
    constructor(map: import("../PluggableMap.js").default);
    /**
     * @private
     * @type {import("../PluggableMap.js").default}
     */
    private map_;
    /**
     * @private
     */
    private declutterTree_;
    /**
     * @abstract
     * @param {import("../render/EventType.js").default} type Event type.
     * @param {import("../PluggableMap.js").FrameState} frameState Frame state.
     */
    dispatchRenderEvent(type: any, frameState: import("../PluggableMap.js").FrameState): void;
    /**
     * @param {import("../PluggableMap.js").FrameState} frameState FrameState.
     * @protected
     */
    protected calculateMatrices2D(frameState: import("../PluggableMap.js").FrameState): void;
    /**
     * @param {import("../coordinate.js").Coordinate} coordinate Coordinate.
     * @param {import("../PluggableMap.js").FrameState} frameState FrameState.
     * @param {number} hitTolerance Hit tolerance in pixels.
     * @param {boolean} checkWrapped Check for wrapped geometries.
     * @param {function(this: S, import("../Feature.js").FeatureLike,
     *     import("../layer/Layer.js").default): T} callback Feature callback.
     * @param {S} thisArg Value to use as `this` when executing `callback`.
     * @param {function(this: U, import("../layer/Layer.js").default): boolean} layerFilter Layer filter
     *     function, only layers which are visible and for which this function
     *     returns `true` will be tested for features.  By default, all visible
     *     layers will be tested.
     * @param {U} thisArg2 Value to use as `this` when executing `layerFilter`.
     * @return {T|undefined} Callback result.
     * @template S,T,U
     */
    forEachFeatureAtCoordinate<S, T, U>(coordinate: number[], frameState: import("../PluggableMap.js").FrameState, hitTolerance: number, checkWrapped: boolean, callback: (this: S, arg1: import("../render/Feature.js").default | import("../Feature.js").default<any>, arg2: import("../layer/Layer.js").default<any>) => T, thisArg: S, layerFilter: (this: U, arg1: import("../layer/Layer.js").default<any>) => boolean, thisArg2: U): T;
    /**
     * @abstract
     * @param {import("../pixel.js").Pixel} pixel Pixel.
     * @param {import("../PluggableMap.js").FrameState} frameState FrameState.
     * @param {number} hitTolerance Hit tolerance in pixels.
     * @param {function(this: S, import("../layer/Layer.js").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer
     *     callback.
     * @param {function(this: U, import("../layer/Layer.js").default): boolean} layerFilter Layer filter
     *     function, only layers which are visible and for which this function
     *     returns `true` will be tested for features.  By default, all visible
     *     layers will be tested.
     * @return {T|undefined} Callback result.
     * @template S,T,U
     */
    forEachLayerAtPixel<S_1, T_1, U_1>(pixel: number[], frameState: import("../PluggableMap.js").FrameState, hitTolerance: number, callback: (this: S_1, arg1: import("../layer/Layer.js").default<any>, arg2: Uint8Array | Uint8ClampedArray) => T_1, layerFilter: (this: U_1, arg1: import("../layer/Layer.js").default<any>) => boolean): T_1;
    /**
     * @param {import("../coordinate.js").Coordinate} coordinate Coordinate.
     * @param {import("../PluggableMap.js").FrameState} frameState FrameState.
     * @param {number} hitTolerance Hit tolerance in pixels.
     * @param {boolean} checkWrapped Check for wrapped geometries.
     * @param {function(this: U, import("../layer/Layer.js").default): boolean} layerFilter Layer filter
     *     function, only layers which are visible and for which this function
     *     returns `true` will be tested for features.  By default, all visible
     *     layers will be tested.
     * @param {U} thisArg Value to use as `this` when executing `layerFilter`.
     * @return {boolean} Is there a feature at the given coordinate?
     * @template U
     */
    hasFeatureAtCoordinate<U_2>(coordinate: number[], frameState: import("../PluggableMap.js").FrameState, hitTolerance: number, checkWrapped: boolean, layerFilter: (this: U_2, arg1: import("../layer/Layer.js").default<any>) => boolean, thisArg: U_2): boolean;
    /**
     * @return {import("../PluggableMap.js").default} Map.
     */
    getMap(): import("../PluggableMap.js").default;
    /**
     * Render.
     * @param {?import("../PluggableMap.js").FrameState} frameState Frame state.
     */
    renderFrame(frameState: import("../PluggableMap.js").FrameState): void;
    /**
     * @param {import("../PluggableMap.js").FrameState} frameState Frame state.
     * @protected
     */
    protected scheduleExpireIconCache(frameState: import("../PluggableMap.js").FrameState): void;
}
import Disposable from "../Disposable.js";
//# sourceMappingURL=Map.d.ts.map