import { IRepetition } from './types/repetitions';
/**
* Get current timestamp in milliseconds
*
* @category Utilities
* @returns {number}
*/
export declare function now(): number;
/**
* Convert number from radians to degrees
*
* @category Utilities
*
* @example
* ```javascript
* Urpflanze.toDegrees(Math.PI) // 180
* ```
*
* @param {number} radians
* @returns {number}
*/
export declare function toDegrees(radians: number): number;
/**
* Convert angle from degrees to radians
* @example
* ```javascript
* Urpflanze.toRadians(180) // 3.141592653589793
* ```
*
* @category Utilities
* @param {number} degrees
* @returns {number}
*/
export declare function toRadians(degrees: number): number;
/**
* Linear interpolation from `a` when `i` as 0 an `b` when `i' as 1
*
* @category Utilities
* @param {number} a
* @param {number} b
* @param {number} i
* @returns {number}
*/
export declare function lerp(a: number, b: number, i: number): number;
/**
* Return number between min and max
*
* @category Utilities
* @example
* ```javascript
* Urpflanze.clamp(0, 1, 1.2) // 1
* Urpflanze.clamp(0, 1, -2) // 0
* ```
* @param {number} min
* @param {number} max
* @param {number} value
* @returns {number}
*/
export declare function clamp(min: number, max: number, value: number): number;
/**
* Map number between refMin e refMax from min and max
*
* @category Utilities
*
* @example
* ```javascript
* Urpflanze.relativeClamp(0, 1, 0.5, 100, 200) // 150
* ```
*
* @param {number} refMin
* @param {number} refMax
* @param {number} value
* @param {number} toMin
* @param {number} toMax
* @returns {number}
*/
export declare function relativeClamp(refMin: number, refMax: number, value: number, toMin: number, toMax: number): number;
/**
* SimplexNoise
* Use 'random' as seed property for random seed.
* Return value between -1 and 1
*
* @category Utilities
*
* @param {string} [seed='random']
* @param {number} [x=0]
* @param {number} [y=0]
* @param {number} [z=0]
* @param {number} [min=-1]
* @param {number} [max=-1]
* @returns {number} between -1 and 1
*/
export declare function noise(seed?: string, x?: number, y?: number, z?: number, min?: number, max?: number): number;
/**
* Random number generator
* @example
* ```javascript
* Urpflanze.random('seed') // 0.9367527104914188
* ```
*
* @category Utilities
* @param {string} seed
* @param {number} min
* @param {number} max
* @param {number} decimals
* @returns {number}
*/
export declare function random(seed?: string | number | null, min?: number, max?: number, decimals?: number): number;
/**
* Return angle (atan) from offset (or center) for matrix repetition.
* Offset is array between [-1, -1] and [1, 1].
* The return value is between -Math.PI / 2 and Math.PI / 2
*
* @category Utilities
*
* @param {IRepetition} repetition
* @param {[number, number]} offsetFromCenter
* @returns {number} between -Math.PI / 2 and Math.PI / 2
*/
export declare function angleFromRepetition(repetition: IRepetition, offsetFromCenter?: [number, number]): number;
/**
* Return angle (atan2, 4 quadrants) from offset (or center) for matrix repetition.
* Offset is array between [-1, -1] and [1, 1].
* The return value is between -Math.PI an Math.PI
*
* @category Utilities
*
* @param {IRepetition} repetition
* @param {[number, number]} offsetFromCenter
* @returns {number} between -Math.PI an Math.PI
*/
export declare function angle2FromRepetition(repetition: IRepetition, offsetFromCenter?: [number, number]): number;
/**
* Return distance from offset (or center) for matrix repetition.
* The return value is between 0 and 1
*
* @category Utilities
*
* @param {IRepetition} repetition
* @param {[number, number]} offsetFromCenter offset relative to distance prop
* @returns {number} between 0 and 1
*/
export declare function distanceFromRepetition(repetition: IRepetition, offsetFromCenter?: [number, number]): number;
/**
* Evenly distributes a number of points in a buffer
*
* @category Utilities.Buffer interpolation
* @export
* @param {Float32Array} buffer current buffer
* @param {number} pointsToAdd points to add
* @return {*} {Float32Array}
*/
export declare function distributePointsInBuffer(buffer: Float32Array, pointsToAdd: number): Float32Array;
/**
* Leads two buffers to have the same number of points
*
* @category Utilities.Buffer interpolation
* @param from
* @param to
* @returns
*/
export declare function prepareBufferForInterpolation(from: Float32Array, to: Float32Array): [Float32Array, Float32Array];
/**
* Interpolate two buffer
*
* @category Utilities.Buffer interpolation
* @param from
* @param to
* @param offset
* @returns
*/
export declare function interpolate(from: Float32Array, to: Float32Array, initialOffset?: number | Array): Float32Array;
//# sourceMappingURL=Utilities.d.ts.map