
import { ShadowPreset } from "../../types/dist/index.js";
import { ArbitraryFixtures, InferArbitraryType } from "../../fixtures/dist/index.js";
import { AllPossibleProperties, PossibleStates } from "./types/ComponentConfig.js";
import { SchemaStateValue } from "./types/ConfigSchema.js";

//#region ../automated-config/dist/properties.d.ts
//#region src/properties.d.ts
type ComponentConfigContext = {
  componentName: string;
  subComponentName?: string;
  propertyKey: string;
  layer: string;
};
interface ConfigurableProperty<T extends AllPossibleProperties, CVR = unknown> {
  name: string;
  cssProperties: string | string[];
  twThemePath: (fixtureType: T, value: string) => string;
  possibleFixtures: readonly T[];
  extendedProperties?: ExtendablePropertiesName[] | ((context: ComponentConfigContext) => ExtendablePropertiesName[] | undefined | false);
  customValueRenderer?: (schemaStateValue: SchemaStateValue<CVR>, schema: unknown, themeGetter: (path: string) => string, originalPropertyDefinition?: SelectedConfigurableProperty<ConfigurablePropertiesName, any>) => string;
  concatenate?: boolean;
  concatenationDelimiter?: string;
}
declare const publicProperties: {
  readonly backgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  readonly borderWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  readonly underlineWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  readonly strokeWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  readonly borderRadius: ConfigurableProperty<"borderRadii", unknown>;
  readonly borderRadiusVar: ConfigurableProperty<"borderRadii", unknown>;
  readonly borderColor: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  readonly underlineColor: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  readonly stroke: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  readonly buttonSize: ConfigurableProperty<"buttonSizes", unknown>;
  readonly buttonVariant: ConfigurableProperty<"buttonVariantsFlat", unknown>;
  readonly fontFamily: ConfigurableProperty<"textVariants", unknown>;
  readonly fontSize: ConfigurableProperty<"textVariants", unknown>;
  readonly fontVariationSettings: ConfigurableProperty<"textVariants", unknown>;
  readonly lineHeight: ConfigurableProperty<"textVariants", unknown>;
  readonly textTransform: ConfigurableProperty<"textVariants", unknown>;
  readonly letterSpacing: ConfigurableProperty<"textVariants", unknown>;
  readonly gap: ConfigurableProperty<"spacingAliases", unknown>;
  readonly color: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "foregroundPaletteColors", unknown>;
  readonly opacity: ConfigurableProperty<"opacitySteps", unknown>;
  readonly fillOpacity: ConfigurableProperty<"opacitySteps", unknown>;
  readonly fontWeight: ConfigurableProperty<"textVariants", unknown>;
  readonly iconSize: ConfigurableProperty<"iconSizes", unknown>;
  readonly spacing: ConfigurableProperty<"spacingAliases", unknown>;
  readonly iconVariant: ConfigurableProperty<"iconVariants", unknown>;
  readonly horizontalMargin: ConfigurableProperty<"spacingAliases", unknown>;
  readonly bottomMargin: ConfigurableProperty<"spacingAliases", unknown>;
  readonly spacingHorizontal: ConfigurableProperty<"spacingAliases", unknown>;
  readonly spacingVertical: ConfigurableProperty<"spacingAliases", unknown>;
  readonly spacingTop: ConfigurableProperty<"spacingAliases", unknown>;
  readonly spacingBottom: ConfigurableProperty<"spacingAliases", unknown>;
  readonly textVariant: ConfigurableProperty<"textVariants", unknown>;
  readonly textDecorationLine: ConfigurableProperty<"textDecorationLines", unknown>;
  readonly shadow: ConfigurableProperty<"elevationAliases" | "shadowVariants" | "shadowVariantConfig", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  readonly shadowVar: ConfigurableProperty<"elevationAliases" | "shadowVariants" | "shadowVariantConfig", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  readonly insetShadow: ConfigurableProperty<"shadowVariantConfig" | "shadowVariantsWithInvert", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  readonly bannerInnerShadow: ConfigurableProperty<"bannerInnerShadowOptions", unknown>;
  readonly height: ConfigurableProperty<"spacingAliases", unknown>;
  readonly width: ConfigurableProperty<"spacingAliases", unknown>;
  readonly scaleEffect: ConfigurableProperty<"scaleEffects", unknown>;
  readonly backdropBlur: ConfigurableProperty<"positiveIntegers", unknown>;
  readonly blurBackgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  readonly blurBackgroundColorFallback: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  readonly scrimBackgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases", unknown>;
  readonly scrimOpacity: ConfigurableProperty<"opacitySteps", unknown>;
  readonly paginationWidthVar: ConfigurableProperty<"positiveIntegers", unknown>;
};
declare const configurableProperties: {
  outlineWidth: ConfigurableProperty<"borderWidths" | "spacingAliases", unknown>;
  outlineColor: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "linePaletteColors", unknown>;
  insetOutlineOffset: ConfigurableProperty<"borderWidths" | "spacingAliases", unknown>;
  solidOutline: ConfigurableProperty<never, unknown>;
  backgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  borderWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  underlineWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  strokeWidth: ConfigurableProperty<"elevationAliases" | "borderWidths" | "spacingAliases", unknown>;
  borderRadius: ConfigurableProperty<"borderRadii", unknown>;
  borderRadiusVar: ConfigurableProperty<"borderRadii", unknown>;
  borderColor: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  underlineColor: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  stroke: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors", unknown>;
  buttonSize: ConfigurableProperty<"buttonSizes", unknown>;
  buttonVariant: ConfigurableProperty<"buttonVariantsFlat", unknown>;
  fontFamily: ConfigurableProperty<"textVariants", unknown>;
  fontSize: ConfigurableProperty<"textVariants", unknown>;
  fontVariationSettings: ConfigurableProperty<"textVariants", unknown>;
  lineHeight: ConfigurableProperty<"textVariants", unknown>;
  textTransform: ConfigurableProperty<"textVariants", unknown>;
  letterSpacing: ConfigurableProperty<"textVariants", unknown>;
  gap: ConfigurableProperty<"spacingAliases", unknown>;
  color: ConfigurableProperty<"spectrumColors" | "alwaysPaletteAliases" | "foregroundPaletteColors", unknown>;
  opacity: ConfigurableProperty<"opacitySteps", unknown>;
  fillOpacity: ConfigurableProperty<"opacitySteps", unknown>;
  fontWeight: ConfigurableProperty<"textVariants", unknown>;
  iconSize: ConfigurableProperty<"iconSizes", unknown>;
  spacing: ConfigurableProperty<"spacingAliases", unknown>;
  iconVariant: ConfigurableProperty<"iconVariants", unknown>;
  horizontalMargin: ConfigurableProperty<"spacingAliases", unknown>;
  bottomMargin: ConfigurableProperty<"spacingAliases", unknown>;
  spacingHorizontal: ConfigurableProperty<"spacingAliases", unknown>;
  spacingVertical: ConfigurableProperty<"spacingAliases", unknown>;
  spacingTop: ConfigurableProperty<"spacingAliases", unknown>;
  spacingBottom: ConfigurableProperty<"spacingAliases", unknown>;
  textVariant: ConfigurableProperty<"textVariants", unknown>;
  textDecorationLine: ConfigurableProperty<"textDecorationLines", unknown>;
  shadow: ConfigurableProperty<"elevationAliases" | "shadowVariants" | "shadowVariantConfig", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  shadowVar: ConfigurableProperty<"elevationAliases" | "shadowVariants" | "shadowVariantConfig", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  insetShadow: ConfigurableProperty<"shadowVariantConfig" | "shadowVariantsWithInvert", string | [] | [ShadowPreset] | [ShadowPreset, ShadowPreset] | [ShadowPreset, ShadowPreset, ShadowPreset]>;
  bannerInnerShadow: ConfigurableProperty<"bannerInnerShadowOptions", unknown>;
  height: ConfigurableProperty<"spacingAliases", unknown>;
  width: ConfigurableProperty<"spacingAliases", unknown>;
  scaleEffect: ConfigurableProperty<"scaleEffects", unknown>;
  backdropBlur: ConfigurableProperty<"positiveIntegers", unknown>;
  blurBackgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  blurBackgroundColorFallback: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases", unknown>;
  scrimBackgroundColor: ConfigurableProperty<"backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases", unknown>;
  scrimOpacity: ConfigurableProperty<"opacitySteps", unknown>;
  paginationWidthVar: ConfigurableProperty<"positiveIntegers", unknown>;
};
type ExtendablePropertiesName = keyof typeof configurableProperties;
type ConfigurablePropertiesName = keyof typeof publicProperties;
interface SelectedConfigurableProperty<C extends ConfigurablePropertiesName, O extends string, T extends (typeof publicProperties)[C]['possibleFixtures'] = (typeof publicProperties)[C]['possibleFixtures'], V extends readonly (readonly unknown[])[] = readonly (readonly unknown[])[]> {
  label: string;
  name: C;
  typeOfFixture: T;
  values: V;
  skipRestState?: boolean;
  pseudoStates?: PossibleStates[];
  supportsCustom?: boolean;
  layerReference?: {
    variablePath: string;
    propertyName: string;
  };
  defaults: { [K in O]: V[number][number] | (Extract<T[number], ArbitraryFixtures> extends never ? never : InferArbitraryType<Extract<T[number], ArbitraryFixtures>>) };
} //#endregion
//#endregion
export { type ComponentConfigContext, type ConfigurablePropertiesName, type ConfigurableProperty, type ExtendablePropertiesName, type SelectedConfigurableProperty, configurableProperties };