import { CanBeState } from "../PubTypes"; import { ValueType } from "../Types"; type MapInputValue = In extends Array ? Array : In extends Map ? Map : In extends Set ? Map : In extends Record ? Record : Record; export declare interface ForValues { type: "State"; kind: "ForValues"; /** * Returns the current value of this ForValues object. * The object will be registered as a dependency unless `asDependency` is false. */ get(asDependency?: boolean): T; } /** * Constructs a new ForValues object which maps values of a table using * a `processor` function. * * Optionally, a `destructor` function can be specified for cleaning up values. * If omitted, the default cleanup function will be used instead. * * Additionally, a `meta` table/value can optionally be returned to pass data created * when running the processor to the destructor when the created object is cleaned up. */ export declare function ForValues( input: CanBeState, processor: (value: ValueType) => Out | LuaTuple<[Out, Meta]>, destructor?: (value: Out, meta: Meta) => void, ): ForValues>;