import Event from '../event';
import BoundsItem from './BoundsItem';
import type { DistrictCluster } from './index';
export interface StyleOption {
    strokeColor?: string;
    strokeOpacity?: number;
    strokeWeight?: number;
    fillColor?: string;
    fillOpacity?: number;
}
export interface FeatureStyleByLevelOption {
    country?: StyleOption;
    province?: StyleOption;
    city?: StyleOption;
    district?: StyleOption;
}
export interface RenderOptions {
    minHeightToShowSubFeatures?: number;
    minSiblingAvgHeightToShowSubFeatures?: number;
    minSubAvgHeightToShowSubFeatures?: number;
    featureStyleByLevel?: FeatureStyleByLevelOption;
    zIndex?: number;
    visible?: boolean;
    areaNodeCacheLimit?: number;
    getFeatureStyle?: (feature: any, dataItems: any[]) => StyleOption;
    zooms?: [number, number];
    renderPolygon?: (feature: any, dataItems: any[]) => AMap.Polygon;
    renderClusterMarker?: (feature: any, dataItems: any[]) => AMap.Marker;
    clusterMarkerEventSupport?: boolean;
    clusterMarkerClickToShowSub?: boolean;
    featureEventSupport?: boolean;
    featureClickToShowSub?: boolean;
}
interface CustomRenderOptions extends RenderOptions {
    map: AMap.Map;
}
declare type _OptOptions = Required<CustomRenderOptions>;
export declare class BaseRender extends Event {
    baseId: number;
    _ins: DistrictCluster;
    _currentZoom: number;
    _currentScaleFactor?: number;
    _currentViewBounds?: BoundsItem;
    _currentViewBoundsInLngLat?: AMap.Bounds;
    _currentPixelRatio?: number;
    _currentFeatures: {
        feature: any;
        dataItems: any;
    }[];
    _currentRenderId?: number;
    _loadLeft: number;
    _isRendering?: boolean;
    _opts: _OptOptions;
    _renderLaterId: any;
    _map: AMap.Map;
    _polygonCache: AMap.Polygon[];
    _markerCache: AMap.Marker[];
    layer: any;
    loca: any;
    _locaPolygonLayer: any;
    markerGroup?: AMap.OverlayGroup;
    constructor(districtCluster: DistrictCluster, options: CustomRenderOptions);
    _createLayer(): void;
    zoomToShowSubFeatures(adcode: any, center?: any): void;
    getPixelRatio(): number;
    refreshViewState(): false | undefined;
    renderViewport(): false | undefined;
    getCurrentRenderId(): number | undefined;
    isRenderIdStillValid(renderId: any): boolean;
    _renderViewDist(renderId: any): void;
    getMinZoomToShowSub(adcode: any): any;
    shouldShowSubOnZoom(treeNode: any, zoom: any): boolean;
    _shouldShowSub(treeNode: any): boolean;
    _prepareFeatures(renderId: any, adcodes: any): void;
    _prepareSelfFeatures(renderId: any, adcodes: any): void;
    _prepareSubFeatures(renderId: any, adcodes: any): void;
    _renderSelf(renderId: any, adcode: any, areaNode: any): void;
    _checkLoadFinish(renderId: any): void;
    _renderSub(renderId: any, areaNode: any): void;
    _handleRenderFinish(): void;
    _renderAllFeature(): void;
    _renderAllFeatureByDefault(): void;
    _tryFreeMemery(): void;
    _increaseLoadLeft(): void;
    _decreaseLoadLeft(renderId: any): void;
    _loadAndRenderSelf(renderId: any, loadAdcode: any, adcode: any): void;
    _loadAndRenderSub(renderId: any, adcode: any): void;
    _prepRenderFeatureInPixel(renderId: any, feature: any): void;
    _createPolygonFeature(feature: any, dataItems: any): any;
    _createClusterMarker(feature: any, dataItems: any): AMap.Marker;
    _getFeatureStyleOptions(feature: any, dataItems: any): StyleOption;
    renderLater(delay?: number): void;
    isRendering(): boolean | undefined;
    render(): void;
    forceRender(): void;
    getOption(k: any): any;
    getOptions(): Required<CustomRenderOptions>;
    show(): void;
    hide(): void;
    clear(): void;
    setzIndex(zIndex: number): void;
    getZooms(): [number, number];
    destroy(): void;
}
export {};
