import { ILayer, ILngLat, ITile } from '@antv/l7-core';
import { SourceTile } from '@antv/l7-utils';
export default abstract class Tile implements ITile {
    x: number;
    y: number;
    z: number;
    key: string;
    protected parent: ILayer;
    sourceTile: SourceTile;
    visible: boolean;
    protected layers: ILayer[];
    isLoaded: boolean;
    protected tileMaskLayers: ILayer[];
    protected tileMask: ILayer | undefined;
    constructor(sourceTile: SourceTile, parent: ILayer);
    getLayers(): ILayer[];
    styleUpdate(...arg: any): void;
    abstract initTileLayer(): Promise<void>;
    lnglatInBounds(lnglat: ILngLat): boolean;
    protected getLayerOptions(): {
        textAllowOverlap: boolean;
        autoFit: boolean;
        maskLayers: ILayer[];
        tileMask: boolean;
        mask: boolean | undefined;
        maskInside?: boolean | undefined;
        maskfence?: any;
        maskColor?: string | undefined;
        maskOpacity?: number | undefined;
        maskOperation?: import("@antv/l7-core").MaskOperationType | undefined;
        sourceLayer?: string | undefined;
        colors?: string[] | undefined;
        size?: number | undefined;
        shape?: string | undefined;
        shape2d?: string[] | undefined;
        shape3d?: string[] | undefined;
        scales?: {
            [key: string]: import("@antv/l7-core").IScale;
        } | undefined;
        minZoom?: number | undefined;
        maxZoom?: number | undefined;
        visible?: boolean | undefined;
        zIndex?: number | undefined;
        pickingBuffer?: number | undefined;
        enablePropagation?: boolean | undefined;
        fitBoundsOptions?: unknown;
        name?: string | undefined;
        blend?: "max" | "normal" | "none" | "min" | "additive" | "subtractive" | undefined;
        depth?: boolean | undefined;
        pickedFeatureID?: number | undefined;
        enableMultiPassRenderer?: boolean | undefined;
        passes?: ((string | [string, {
            [key: string]: unknown;
        }])[] & import("@antv/l7-core").IPass<unknown>[]) | undefined;
        layerType?: string | undefined;
        cursorEnabled?: boolean | undefined;
        cursor?: string | undefined;
        forward?: boolean | undefined;
        usage?: string | undefined;
        enableMask?: boolean | undefined;
        enablePicking?: boolean | undefined;
        enableHighlight?: boolean | undefined;
        enableSelect?: boolean | undefined;
        highlightColor?: string | number[] | undefined;
        selectColor?: string | number[] | undefined;
        active?: boolean | undefined;
        activeColor?: string | number[] | undefined;
        activeMix?: number | undefined;
        selectMix?: number | undefined;
        enableTAA?: boolean | undefined;
        jitterScale?: number | undefined;
        enableLighting?: boolean | undefined;
        animateOption?: Partial<import("@antv/l7-core").IAnimateOption> | undefined;
        globalOptions?: any;
        iconfont?: boolean | undefined;
        workerEnabled?: boolean | undefined;
        onHover?: ((pickedFeature: import("@antv/l7-core").IPickedFeature) => void) | undefined;
        onClick?: ((pickedFeature: import("@antv/l7-core").IPickedFeature) => void) | undefined;
        id?: string | HTMLDivElement | undefined;
        canvas?: HTMLCanvasElement | undefined;
        gl?: any;
        hasBaseMap?: boolean | undefined;
        map?: import("@antv/l7-core").IMapWrapper | undefined;
        logoPosition?: import("@antv/l7-core").PositionName | undefined;
        logoVisible?: boolean | undefined;
        isMini?: boolean | undefined;
        animate?: boolean | undefined;
        pickBufferScale?: number | undefined;
        stencil?: boolean | undefined;
        debug?: boolean | undefined;
        antialias?: boolean | undefined;
        preserveDrawingBuffer?: boolean | undefined;
    };
    protected getMaskLayer(): ILayer[];
    protected addTileMask(): Promise<ILayer>;
    protected addMask(layer: ILayer, mask: ILayer): Promise<void>;
    protected addLayer(layer: ILayer): Promise<void>;
    updateVisible(value: boolean): void;
    updateOptions(key: string, value: any): void;
    /**
     * 一个 Tile 可能有多个 layer，但是在发生拾取、点击事件的时候只有一个生效
     */
    getMainLayer(): ILayer | undefined;
    getFeatures(sourceLayer: string | undefined): any[];
    /**
     * 在一个 Tile 中可能存在一个相同 ID 的 feature
     * @param id
     * @returns
     */
    getFeatureById(id: number): any[];
    destroy(): void;
}
