import type { _GKBehavior } from "./GKBehavior.js";
import type { _NSArray } from "../Foundation/NSArray.js";
export declare class _GKCompositeBehavior extends _GKBehavior {
    static alloc(): _GKCompositeBehavior;
    static new(): _GKCompositeBehavior;
    init(): _GKCompositeBehavior;
    /** Creates a behavior with an array of sub-behaviors */
    static behaviorWithBehaviors$(behaviors: _NSArray): _GKCompositeBehavior;
    /** Creates a behavior with two associated arrays of sub-behaviors and weights */
    static behaviorWithBehaviors$andWeights$(behaviors: _NSArray, weights: _NSArray): _GKCompositeBehavior;
    /**
     * Adds a new sub-behavior or changes the weight of the existing sub-behavior in this behavior. If the sub-behavior does not exist in this behavior, it is added. @param weight the weight for this goal @param behavior the sub-behavior who's weight to change
     */
    setWeight$forBehavior$(weight: number, behavior: _GKBehavior): void;
    /**
     * Gets the current weight for a given sub-behavior. @return the weight of the sub-behavior, or 0 if there is no such sub-behavior on this behavior
     */
    weightForBehavior$(behavior: _GKBehavior): number;
    /**
     * Remove the indicated sub-behavior from this behavior. @param behavior the sub-behavior to be removed
     */
    removeBehavior$(behavior: _GKBehavior): void;
    /** Removes all the sub-behavior on the behavior. */
    removeAllBehaviors(): void;
    /** Number of sub-behaviors in this behavior */
    behaviorCount(): number;
}
