import { Vector3 } from 'three';
import { Mesh } from 'three';
type RandomFuncWithoutSeed = () => number;
type RandomFuncWithSeed = (index: number) => number;
type RandomFunc = RandomFuncWithoutSeed | RandomFuncWithSeed;
export declare class MeshSurfaceSampler {
    private additionalAttributeNames;
    private geometry;
    private randomFunction;
    private positionAttribute;
    private additionalAttributes;
    private weightAttribute;
    private distribution;
    constructor(mesh: Mesh, additionalAttributeNames: string[]);
    setWeightAttribute(name: string): this;
    build(): this;
    setRandomGenerator(randomFunction: RandomFunc): this;
    sample(index: number, targetPosition: Vector3, targetNormal: Vector3, targetAdditionalVectors?: Vector3[]): this;
    binarySearch(x: number): number;
    sampleFace(i: number, faceIndex: number, targetPosition: Vector3, targetNormal: Vector3, targetAdditionalVectors?: Vector3[]): this;
}
export {};
