/**
 * Single keyframe of {@link AnimationCurve}
 */
export class Keyframe {
    /**
     *
     * @param {number} time
     * @param {number} value
     * @param {number} inTangent
     * @param {number} outTangent
     * @return {Keyframe}
     */
    static from(time: number, value: number, inTangent?: number, outTangent?: number): Keyframe;
    /**
     *
     * @type {number}
     */
    value: number;
    /**
     * Timestamp
     * @type {number}
     */
    time: number;
    /**
     * Incoming tangent, affects the slope of the curve from previous key
     * @type {number}
     */
    inTangent: number;
    /**
     * Outgoing tangent, affect the slope of the curve from this key to the next key
     * @type {number}
     */
    outTangent: number;
    /**
     *
     * @param {number} time
     * @param {number} value
     * @param {number} inTangent
     * @param {number} outTangent
     */
    set(time: number, value: number, inTangent: number, outTangent: number): void;
    /**
     *
     * @param {Keyframe} other
     * @returns {boolean}
     */
    equals(other: Keyframe): boolean;
    /**
     *
     * @param {Keyframe} other
     */
    copy(other: Keyframe): void;
    /**
     *
     * @return {Keyframe}
     */
    clone(): Keyframe;
    /**
     *
     * @return {number}
     */
    hash(): number;
    toJSON(): {
        value: number;
        time: number;
        inTangent: number;
        outTangent: number;
    };
    fromJSON({ value, time, inTangent, outTangent }: {
        value: any;
        time: any;
        inTangent: any;
        outTangent: any;
    }): void;
    /**
     * Useful for type checks
     * @readonly
     * @type {boolean}
     */
    readonly isKeyframe: boolean;
}
//# sourceMappingURL=Keyframe.d.ts.map