import StyleLayer from '../style_layer';
import FillExtrusionBucket from '../../data/bucket/fill_extrusion_bucket';
import { PaintPropsPossiblyEvaluated } from './fill_extrusion_style_layer_properties';
import { Transitionable, Transitioning, PossiblyEvaluated } from '../properties';
import { mat4 } from 'gl-matrix';
import Point from '../../util/point';
import type { FeatureState } from '../../style-spec/expression';
import type { BucketParameters } from '../../data/bucket';
import type { PaintProps } from './fill_extrusion_style_layer_properties';
import type Transform from '../../geo/transform';
import type { LayerSpecification } from '../../style-spec/types';
declare type Point3D = Point & {
    z: number;
};
declare class FillExtrusionStyleLayer extends StyleLayer {
    _transitionablePaint: Transitionable<PaintProps>;
    _transitioningPaint: Transitioning<PaintProps>;
    paint: PossiblyEvaluated<PaintProps, PaintPropsPossiblyEvaluated>;
    constructor(layer: LayerSpecification);
    createBucket(parameters: BucketParameters<FillExtrusionStyleLayer>): FillExtrusionBucket;
    queryRadius: () => number;
    is3D(): boolean;
    queryIntersectsFeature: (queryGeometry: Array<Point>, feature: VectorTileFeature, featureState: FeatureState, geometry: Array<Array<Point>>, zoom: number, transform: Transform, pixelsToTileUnits: number, pixelPosMatrix: mat4) => boolean | number;
}
export declare function getIntersectionDistance(projectedQueryGeometry: Array<Point3D>, projectedFace: Array<Point3D>): number;
export default FillExtrusionStyleLayer;
//# sourceMappingURL=fill_extrusion_style_layer.d.ts.map