import type { AnimationFunction, EasingFunction, LayoutAnimationAndConfig, StyleProps } from '../../commonTypes';
import type { EasingFunctionFactory } from '../../Easing';
import { BaseAnimationBuilder } from './BaseAnimationBuilder';
/**
 * `this` type for static methods on {@link AnimationConfigBuilder}. Represents a
 * subclass constructor exposing the shared config-only static API inherited
 * from {@link BaseAnimationBuilder}.
 */
type AnimationConfigBuilderClass = typeof BaseAnimationBuilder & (new () => AnimationConfigBuilder);
export declare class AnimationConfigBuilder extends BaseAnimationBuilder {
    easingV?: EasingFunction | EasingFunctionFactory;
    rotateV?: string;
    type?: AnimationFunction;
    dampingV?: number;
    dampingRatioV?: number;
    massV?: number;
    stiffnessV?: number;
    overshootClampingV?: number;
    energyThresholdV?: number;
    static createInstance: <T extends typeof BaseAnimationBuilder>(this: T) => InstanceType<T>;
    /**
     * Lets you change the easing curve of the animation. Can be chained alongside
     * other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param easingFunction - An easing function which defines the animation
     *   curve.
     */
    static easing(this: AnimationConfigBuilderClass, easingFunction: EasingFunction | EasingFunctionFactory): AnimationConfigBuilder;
    easing(easingFunction: EasingFunction | EasingFunctionFactory): this;
    /**
     * Lets you rotate the element. Can be chained alongside other [layout
     * animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param degree - The rotation degree.
     */
    static rotate(this: AnimationConfigBuilderClass, degree: string): AnimationConfigBuilder;
    rotate(degree: string): this;
    /**
     * Enables the spring-based animation configuration. Can be chained alongside
     * other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param duration - An optional duration of the spring animation (in
     *   milliseconds).
     */
    static springify(this: AnimationConfigBuilderClass, duration?: number): AnimationConfigBuilder;
    springify(duration?: number): this;
    /**
     * Lets you adjust the spring animation damping ratio. Can be chained
     * alongside other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param dampingRatio - How damped the spring is.
     */
    static dampingRatio(this: AnimationConfigBuilderClass, dampingRatio: number): AnimationConfigBuilder;
    dampingRatio(value: number): this;
    /**
     * Lets you adjust the spring animation damping. Can be chained alongside
     * other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param value - Decides how quickly a spring stops moving. Higher damping
     *   means the spring will come to rest faster.
     */
    static damping(this: AnimationConfigBuilderClass, value: number): AnimationConfigBuilder;
    damping(damping: number): this;
    /**
     * Lets you adjust the spring animation mass. Can be chained alongside other
     * [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param mass - The weight of the spring. Reducing this value makes the
     *   animation faster.
     */
    static mass(this: AnimationConfigBuilderClass, mass: number): AnimationConfigBuilder;
    mass(mass: number): this;
    /**
     * Lets you adjust the stiffness of the spring animation. Can be chained
     * alongside other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param stiffness - How bouncy the spring is.
     */
    static stiffness(this: AnimationConfigBuilderClass, stiffness: number): AnimationConfigBuilder;
    stiffness(stiffness: number): this;
    /**
     * Lets you adjust overshoot clamping of the spring. Can be chained alongside
     * other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param overshootClamping - Whether a spring can bounce over the final
     *   position.
     */
    static overshootClamping(this: AnimationConfigBuilderClass, overshootClamping: number): AnimationConfigBuilder;
    overshootClamping(overshootClamping: number): this;
    /**
     * @deprecated Use {@link energyThreshold} instead. This method currently does
     *   nothing and will be removed in the upcoming major version.
     */
    static restDisplacementThreshold(this: AnimationConfigBuilderClass, _restDisplacementThreshold: number): AnimationConfigBuilder;
    /**
     * @deprecated Use {@link energyThreshold} instead. This method currently does
     *   nothing and will be removed in the upcoming major version.
     */
    restDisplacementThreshold(_restDisplacementThreshold: number): this;
    /**
     * @deprecated Use {@link energyThreshold} instead. This method currently does
     *   nothing and will be removed in a future version.
     */
    static restSpeedThreshold(this: AnimationConfigBuilderClass, _restSpeedThreshold: number): AnimationConfigBuilder;
    /**
     * @deprecated Use {@link energyThreshold} instead. This method currently does
     *   nothing and will be removed in a future version.
     */
    restSpeedThreshold(_restSpeedThreshold: number): this;
    /**
     * Lets you adjust the energy threshold level to stop the spring animation.
     * Can be chained alongside other [layout animation
     * modifiers](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#layout-animation-modifier).
     *
     * @param energyThreshold - Relative energy threshold below which the spring
     *   will snap to `toValue` without further oscillations. Defaults to 6e-9.
     */
    static energyThreshold(this: AnimationConfigBuilderClass, energyThreshold: number): AnimationConfigBuilder;
    energyThreshold(energyThreshold: number): this;
    getAnimationAndConfig(): LayoutAnimationAndConfig;
}
/**
 * `this` type for static methods on {@link ComplexAnimationBuilder}. Represents
 * a subclass constructor preserving the concrete `TValues` type for
 * initial/target value override methods.
 */
type ComplexAnimationBuilderClass<TValues> = typeof BaseAnimationBuilder & (new () => ComplexAnimationBuilder<TValues>);
export declare class ComplexAnimationBuilder<TValues = StyleProps> extends AnimationConfigBuilder {
    initialValues?: Partial<TValues>;
    targetValues?: Partial<TValues>;
    /**
     * Lets you override the initial properties of the animation
     *
     * @param values - An object containing the styles to override.
     */
    static withInitialValues<TValues>(this: ComplexAnimationBuilderClass<TValues>, values: Partial<TValues>): ComplexAnimationBuilder<TValues>;
    withInitialValues(values: Partial<TValues>): this;
    /**
     * Lets you override the target properties of the animation
     *
     * @param values - An object containing the styles to override.
     */
    static withTargetValues<TValues>(this: ComplexAnimationBuilderClass<TValues>, values: Partial<TValues>): ComplexAnimationBuilder<TValues>;
    withTargetValues(values: Partial<TValues>): this;
}
export {};
//# sourceMappingURL=ComplexAnimationBuilder.d.ts.map