import { SyncHook } from '@antv/async-hook';
import { IClusterOptions, IParserCfg, IParserData, ISource, ISourceCFG, ITileParserCFG, ITransform } from '@antv/l7-core';
import { SourceTile, TilesetManager } from '@antv/l7-utils';
import { BBox } from '@turf/helpers';
import { EventEmitter } from 'eventemitter3';
export default class Source extends EventEmitter implements ISource {
    type: string;
    isTile: boolean;
    inited: boolean;
    data: IParserData;
    center: [number, number];
    extent: BBox;
    hooks: {
        init: SyncHook;
    };
    getSourceCfg(): Partial<ISourceCFG>;
    parser: IParserCfg | ITileParserCFG;
    transforms: ITransform[];
    cluster: boolean;
    clusterOptions: Partial<IClusterOptions>;
    tileset: TilesetManager | undefined;
    private invalidExtent;
    private dataArrayChanged;
    protected originData: any;
    protected rawData: any;
    private cfg;
    private clusterIndex;
    constructor(data: any | ISource, cfg?: ISourceCFG);
    getClusters(zoom: number): any;
    getClustersLeaves(id: number): any;
    getParserType(): string;
    updateClusterData(zoom: number): void;
    getFeatureById(id: number): unknown;
    updateFeaturePropertiesById(id: number, properties: Record<string, any>): void;
    getFeatureId(field: string, value: any): number | undefined;
    setData(data: any, options?: ISourceCFG): void;
    reloadAllTile(): void;
    reloadTilebyId(z: number, x: number, y: number): void;
    reloadTileByLnglat(lng: number, lat: number, z: number): void;
    getTileExtent(e: [number, number, number, number], zoom: number): Array<{
        x: number;
        y: number;
        z: number;
    }> | undefined;
    getTileByZXY(z: number, x: number, y: number): SourceTile | undefined;
    reloadTileByExtent(bounds: [number, number, number, number], z: number): void;
    destroy(): void;
    private processData;
    private initCfg;
    private init;
    /**
     * 数据解析
     */
    private excuteParser;
    private setCenter;
    /**
     * 瓦片数据管理器
     */
    private initTileset;
    /**
     * 数据统计
     */
    private executeTrans;
    /**
     * 数据聚合
     */
    private initCluster;
    private caculClusterExtent;
}
