import { Primitive } from '../reflection/primitives'; import { ArrayBehaviorState, BehaviorState, PrimitiveBehaviorState } from './behavior-state'; /** * Infers the desired behavior state implementation for a given type parameter. * Will return either {@link BehaviorState}, {@link PrimitiveBehaviorState} * or {@link ArrayBehaviorState} depending on the input type */ export declare type InferredBehaviorState = T extends Primitive ? PrimitiveBehaviorState : T extends Iterable ? ArrayBehaviorState : BehaviorState; /** * Creates a behavior state instance by inferring the behavior states * implementation type. * * @param value The value that should be nested into a behavior state instance */ export declare function createBehaviorState(value: T): InferredBehaviorState;