
import { AllPossibleProperties, PossibleStates } from "./ComponentConfig.js";

//#region ../automated-config/dist/types/ConfigSchema.d.ts
//#region src/types/ConfigSchema.d.ts
/** Schema for a single state value with its property type, value source, and actual value */
type SchemaStateValue<T = unknown> = {
  type: AllPossibleProperties;
  valueType: 'alias' | 'custom';
  value: T;
  /**
   * Per-state opt-in flag. The CSS generator emits a rule for `rest` always
   * and for any non-rest slot only when this is `true`. Toggling it lets a
   * designer turn off a state's CSS without losing the value they configured
   * — re-enabling restores the previous value. The configurator's setter
   * manages this flag in response to the property's enable checkbox.
   */
  isEnabled?: boolean;
};
/** Map of component states to schema values. Requires 'rest', optional interactive states */
type VariableState = {
  rest: SchemaStateValue;
} & { [K in PossibleStates]?: SchemaStateValue };
/** Configuration object mapping property keys to their state-based values */
//#endregion
export { type SchemaStateValue, type VariableState };