import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
import BaseModel from '../../core/BaseModel';
export default class PlaneModel extends BaseModel {
    protected texture: ITexture2D;
    protected terrainImage: HTMLImageElement;
    protected terrainImageLoaded: boolean;
    protected mapTexture: string | undefined;
    initPlane(width?: number, height?: number, widthSegments?: number, heightSegments?: number, lng?: number, lat?: number): {
        indices: number[];
        positions: number[];
    };
    planeGeometryTriangulation: () => {
        vertices: number[];
        indices: number[];
        size: number;
    };
    getUninforms(): IModelUniform;
    clearModels(): void;
    initModels(): Promise<IModel[]>;
    buildModels(): Promise<IModel[]>;
    createModelData(options?: any): {
        attributes: {
            [attributeName: string]: import("@antv/l7-core").IAttribute;
        };
        elements: import("@antv/l7-core").IElements;
        count: number | null;
    };
    updateTexture(mapTexture: string | undefined): void;
    protected getImageData(img: HTMLImageElement): ImageData;
    protected translateVertex(positions: number[], indices: number[], image: HTMLImageElement, widthSegments: number, heightSegments: number, rgb2height: (r: number, g: number, b: number) => number): void;
    /**
     * load terrain texture & offset attribute z
     */
    protected loadTerrainTexture(positions: number[], indices: number[]): void;
    protected registerBuiltinAttributes(): void;
}
