import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _SCNAnimatable } from "./SCNAnimatable.js";
import type { SCNMorpherCalculationMode } from "./SCNMorpherCalculationMode.js";
export declare class _SCNMorpher extends _NSObject {
    static alloc(): _SCNMorpher;
    static new(): _SCNMorpher;
    init(): _SCNMorpher;
    /**
     * @method setWeight:forTargetAtIndex: @abstract Sets the weight for the target at the specified index. Animatable implicitly or explicitly with the keyPath "weights[index]" or "weights["targetName"]" (targetName is the name of the target geometry).
     */
    setWeight$forTargetAtIndex$(weight: number, targetIndex: number): void;
    /**
     * @method weightForTargetAtIndex: @abstract Retrieves the weight for the target at the specified index.
     */
    weightForTargetAtIndex$(targetIndex: number): number;
    /**
     * @method setWeight:forTargetNamed: @abstract Sets the weight for the target with the specified name (targetName is the name of the target geometry).
     */
    setWeight$forTargetNamed$(weight: number, targetName: _NSString): void;
    /**
     * @method weightForTargetNamed: @abstract Retrieves the weight for the target with the specified name (targetName is the name of the target geometry).
     */
    weightForTargetNamed$(targetName: _NSString): number;
    /**
     * @property targets @abstract Specifies the morph targets as an array of SCNGeometry. @discussion The target geometries must have the same number of entries in their geometry sources and the same topology as the base geometry.
     */
    targets(): _NSArray;
    setTargets$(value: _NSArray): void;
    /** @property weights @abstract Access to all the weights of all the targets. */
    weights(): _NSArray;
    setWeights$(value: _NSArray): void;
    /**
     * @property calculationMode @abstract Specifies how the morph result is calculated by the receiver. Defaults to SCNMorpherCalculationModeNormalized.
     */
    calculationMode(): SCNMorpherCalculationMode;
    setCalculationMode$(value: SCNMorpherCalculationMode): void;
    /**
     * @property unifiesNormals @abstract When set to YES the normals are not morphed but are recomputed after morphing the vertex instead. When set to NO, the morpher will morph the normals if the geometry targets have normals. Defaults to NO.
     */
    unifiesNormals(): boolean;
    setUnifiesNormals$(value: boolean): void;
}
export interface _SCNMorpher extends _SCNAnimatable, _NSSecureCoding {
}
