import type { Euler, Vector3 } from "three/src/Three";
import type { ReadonlyEuler } from "./ReadonlyEuler";
import type { ReadonlyMatrix4 } from "./ReadonlyMatrix4";
import type { ReadonlyQuaternion } from "./ReadonlyQuaternion";
import type { ReadonlyVector3 } from "./ReadonlyVector3";
export type WritableEuler = {
    /**
     * @default 0
     */
    x: number;
    /**
     * @default 0
     */
    y: number;
    /**
     * @default 0
     */
    z: number;
    /**
     * @default THREE.Euler.DefaultOrder
     */
    order: string;
    readonly isEuler: true;
    _onChangeCallback: () => void;
    set(x: number, y: number, z: number, order?: string): WritableEuler;
    clone(): Euler;
    copy(euler: ReadonlyEuler): WritableEuler;
    setFromRotationMatrix(m: ReadonlyMatrix4, order?: string, update?: boolean): WritableEuler;
    setFromQuaternion(q: ReadonlyQuaternion, order?: string, update?: boolean): WritableEuler;
    setFromVector3(v: ReadonlyVector3, order?: string): WritableEuler;
    reorder(newOrder: string): WritableEuler;
    equals(euler: ReadonlyEuler): boolean;
    fromArray(xyzo: any[]): WritableEuler;
    toArray(array?: any[], offset?: number): any[];
    toVector3(optionalResult?: Vector3): Vector3;
    _onChange(callback: () => void): WritableEuler;
};
