import Point from '../util/point';
import { mat4, vec4 } from 'gl-matrix';
import type Painter from '../render/painter';
import type Transform from '../geo/transform';
import type SymbolBucket from '../data/bucket/symbol_bucket';
import type { GlyphOffsetArray, SymbolLineVertexArray, SymbolDynamicLayoutArray } from '../data/array_types';
export { updateLineLabels, hideGlyphs, getLabelPlaneMatrix, getGlCoordMatrix, project, getPerspectiveRatio, placeFirstAndLastGlyph, placeGlyphAlongLine, xyTransformMat4 };
declare function getLabelPlaneMatrix(posMatrix: mat4, pitchWithMap: boolean, rotateWithMap: boolean, transform: Transform, pixelsToTileUnits: number): mat4;
declare function getGlCoordMatrix(posMatrix: mat4, pitchWithMap: boolean, rotateWithMap: boolean, transform: Transform, pixelsToTileUnits: number): mat4;
declare function project(point: Point, matrix: mat4): {
    point: Point;
    signedDistanceFromCamera: number;
};
declare function getPerspectiveRatio(cameraToCenterDistance: number, signedDistanceFromCamera: number): number;
declare function updateLineLabels(bucket: SymbolBucket, posMatrix: mat4, painter: Painter, isText: boolean, labelPlaneMatrix: mat4, glCoordMatrix: mat4, pitchWithMap: boolean, keepUpright: boolean): void;
declare function placeFirstAndLastGlyph(fontScale: number, glyphOffsetArray: GlyphOffsetArray, lineOffsetX: number, lineOffsetY: number, flip: boolean, anchorPoint: Point, tileAnchorPoint: Point, symbol: any, lineVertexArray: SymbolLineVertexArray, labelPlaneMatrix: mat4, projectionCache: any): {
    first: {
        point: Point;
        angle: number;
        path: any[];
    };
    last: {
        point: Point;
        angle: number;
        path: any[];
    };
};
declare function placeGlyphAlongLine(offsetX: number, lineOffsetX: number, lineOffsetY: number, flip: boolean, anchorPoint: Point, tileAnchorPoint: Point, anchorSegment: number, lineStartIndex: number, lineEndIndex: number, lineVertexArray: SymbolLineVertexArray, labelPlaneMatrix: mat4, projectionCache: {
    [_: number]: Point;
}): {
    point: Point;
    angle: number;
    path: any[];
};
declare function hideGlyphs(num: number, dynamicLayoutVertexArray: SymbolDynamicLayoutArray): void;
declare function xyTransformMat4(out: vec4, a: vec4, m: mat4): vec4;
//# sourceMappingURL=projection.d.ts.map