import * as Rolldown from "@voidzero-dev/vite-plus-core/rolldown";
import { BuildOptions, ChecksOptions, ExternalOption, InputOptions, InternalModuleFormat, MinifyOptions, ModuleFormat, ModuleTypes, OutputAsset, OutputChunk, OutputOptions, TreeshakingOptions } from "@voidzero-dev/vite-plus-core/rolldown";
import { IsolatedDeclarationsOptions } from "@voidzero-dev/vite-plus-core/rolldown/experimental";

//#region ../../node_modules/.pnpm/tsdown@0.21.2_@arethetypeswrong+core@0.18.2_@tsdown+css@0.21.2_@tsdown+exe@0.21.2_@type_b93b799299757e647e700df84d204817/node_modules/tsdown/dist/logger-BUKd5OJy.d.mts
//#region src/utils/types.d.ts
type Overwrite<T, U> = Omit<T, keyof U> & U;
type Awaitable<T> = T | Promise<T>;
type MarkPartial<T, K extends keyof T> = Omit<Required<T>, K> & Partial<Pick<T, K>>;
type Arrayable$1<T> = T | T[]; //#endregion
//#region src/utils/logger.d.ts
type LogType = "error" | "warn" | "info";
type LogLevel = LogType | "silent";
interface LoggerOptions {
  allowClearScreen?: boolean;
  customLogger?: Logger;
  console?: Console;
  failOnWarn?: boolean;
}
interface Logger {
  level: LogLevel;
  options?: LoggerOptions;
  info: (...args: any[]) => void;
  warn: (...args: any[]) => void;
  warnOnce: (...args: any[]) => void;
  error: (...args: any[]) => void;
  success: (...args: any[]) => void;
  clearScreen: (type: LogType) => void;
}
declare const globalLogger: Logger; //#endregion
//#endregion
//#region ../../node_modules/.pnpm/hookable@6.0.1/node_modules/hookable/dist/index.d.mts
//#region src/types.d.ts
type HookCallback = (...arguments_: any) => Promise<void> | void;
type HookKeys<T> = keyof T & string;
type DeprecatedHook<T> = {
  message?: string;
  to: HookKeys<T>;
};
type ValueOf<C> = C extends Record<any, any> ? C[keyof C] : never;
type Strings<T> = Exclude<keyof T, number | symbol>;
type KnownKeys<T> = keyof { [K in keyof T as string extends K ? never : number extends K ? never : K]: never };
type StripGeneric<T> = Pick<T, KnownKeys<T> extends keyof T ? KnownKeys<T> : never>;
type OnlyGeneric<T> = Omit<T, KnownKeys<T> extends keyof T ? KnownKeys<T> : never>;
type Namespaces<T> = ValueOf<{ [key in Strings<T>]: key extends `${infer Namespace}:${string}` ? Namespace : never }>;
type BareHooks<T> = ValueOf<{ [key in Strings<T>]: key extends `${string}:${string}` ? never : key }>;
type HooksInNamespace<T, Namespace extends string> = ValueOf<{ [key in Strings<T>]: key extends `${Namespace}:${infer HookName}` ? HookName : never }>;
type WithoutNamespace<T, Namespace extends string> = { [key in HooksInNamespace<T, Namespace>]: `${Namespace}:${key}` extends keyof T ? T[`${Namespace}:${key}`] : never };
type NestedHooks<T> = (Partial<StripGeneric<T>> | Partial<OnlyGeneric<T>>) & Partial<{ [key in Namespaces<StripGeneric<T>>]: NestedHooks<WithoutNamespace<T, key>> }> & Partial<{ [key in BareHooks<StripGeneric<T>>]: T[key] }>; //#endregion
//#region src/hookable.d.ts
type InferCallback<HT, HN extends keyof HT> = HT[HN] extends HookCallback ? HT[HN] : never;
type InferSpyEvent<HT extends Record<string, any>> = { [key in keyof HT]: {
  name: key;
  args: Parameters<HT[key]>;
  context: Record<string, any>;
} }[keyof HT];
declare class Hookable<HooksT extends Record<string, any> = Record<string, HookCallback>, HookNameT extends HookKeys<HooksT> = HookKeys<HooksT>> {
  private _hooks;
  private _before?;
  private _after?;
  private _deprecatedHooks;
  private _deprecatedMessages?;
  constructor();
  hook<NameT extends HookNameT>(name: NameT, function_: InferCallback<HooksT, NameT>, options?: {
    allowDeprecated?: boolean;
  }): () => void;
  hookOnce<NameT extends HookNameT>(name: NameT, function_: InferCallback<HooksT, NameT>): () => void;
  removeHook<NameT extends HookNameT>(name: NameT, function_: InferCallback<HooksT, NameT>): void;
  deprecateHook<NameT extends HookNameT>(name: NameT, deprecated: HookKeys<HooksT> | DeprecatedHook<HooksT>): void;
  deprecateHooks(deprecatedHooks: Partial<Record<HookNameT, DeprecatedHook<HooksT>>>): void;
  addHooks(configHooks: NestedHooks<HooksT>): () => void;
  removeHooks(configHooks: NestedHooks<HooksT>): void;
  removeAllHooks(): void;
  callHook<NameT extends HookNameT>(name: NameT, ...args: Parameters<InferCallback<HooksT, NameT>>): Promise<any> | void;
  callHookParallel<NameT extends HookNameT>(name: NameT, ...args: Parameters<InferCallback<HooksT, NameT>>): Promise<any[]> | void;
  callHookWith<NameT extends HookNameT, CallFunction extends (hooks: HookCallback[], args: Parameters<InferCallback<HooksT, NameT>>, name: NameT) => any>(caller: CallFunction, name: NameT, args: Parameters<InferCallback<HooksT, NameT>>): ReturnType<CallFunction>;
  beforeEach(function_: (event: InferSpyEvent<HooksT>) => void): () => void;
  afterEach(function_: (event: InferSpyEvent<HooksT>) => void): () => void;
}
type CreateTask = (name?: string) => {
  run: (function_: () => Promise<any> | any) => Promise<any> | any;
};
declare global {
  interface Console {
    createTask?: CreateTask;
  }
}
/** @deprecated */
//#endregion
//#region ../../node_modules/.pnpm/lightningcss@1.32.0/node_modules/lightningcss/node/ast.d.ts
/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
type String = string;
/**
 * A CSS rule.
 */
type Rule<D = Declaration, M = MediaQuery> = {
  type: "media";
  value: MediaRule<D, M>;
} | {
  type: "import";
  value: ImportRule<M>;
} | {
  type: "style";
  value: StyleRule<D, M>;
} | {
  type: "keyframes";
  value: KeyframesRule<D>;
} | {
  type: "font-face";
  value: FontFaceRule;
} | {
  type: "font-palette-values";
  value: FontPaletteValuesRule;
} | {
  type: "font-feature-values";
  value: FontFeatureValuesRule;
} | {
  type: "page";
  value: PageRule<D>;
} | {
  type: "supports";
  value: SupportsRule<D, M>;
} | {
  type: "counter-style";
  value: CounterStyleRule<D>;
} | {
  type: "namespace";
  value: NamespaceRule;
} | {
  type: "moz-document";
  value: MozDocumentRule<D, M>;
} | {
  type: "nesting";
  value: NestingRule<D, M>;
} | {
  type: "nested-declarations";
  value: NestedDeclarationsRule<D>;
} | {
  type: "viewport";
  value: ViewportRule<D>;
} | {
  type: "custom-media";
  value: CustomMediaRule<M>;
} | {
  type: "layer-statement";
  value: LayerStatementRule;
} | {
  type: "layer-block";
  value: LayerBlockRule<D, M>;
} | {
  type: "property";
  value: PropertyRule;
} | {
  type: "container";
  value: ContainerRule<D, M>;
} | {
  type: "scope";
  value: ScopeRule<D, M>;
} | {
  type: "starting-style";
  value: StartingStyleRule<D, M>;
} | {
  type: "view-transition";
  value: ViewTransitionRule;
} | {
  type: "ignored";
} | {
  type: "unknown";
  value: UnknownAtRule;
} | {
  type: "custom";
  value: DefaultAtRule;
};
/**
 * Represents a media condition.
 */
type MediaCondition = {
  type: "feature";
  value: QueryFeatureFor_MediaFeatureId;
} | {
  type: "not";
  value: MediaCondition;
} | {
  /**
   * The conditions for the operator.
   */
  conditions: MediaCondition[];
  /**
   * The operator for the conditions.
   */
  operator: Operator;
  type: "operation";
} | {
  type: "unknown";
  value: TokenOrValue[];
};
/**
 * A generic media feature or container feature.
 */
type QueryFeatureFor_MediaFeatureId = {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_MediaFeatureId;
  type: "plain";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_MediaFeatureId;
  type: "boolean";
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_MediaFeatureId;
  /**
   * A comparator.
   */
  operator: MediaFeatureComparison;
  type: "range";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The end value.
   */
  end: MediaFeatureValue;
  /**
   * A comparator for the end value.
   */
  endOperator: MediaFeatureComparison;
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_MediaFeatureId;
  /**
   * A start value.
   */
  start: MediaFeatureValue;
  /**
   * A comparator for the start value.
   */
  startOperator: MediaFeatureComparison;
  type: "interval";
};
/**
 * A media feature name.
 */
type MediaFeatureNameFor_MediaFeatureId = MediaFeatureId | String | String;
/**
 * A media query feature identifier.
 */
type MediaFeatureId = "width" | "height" | "aspect-ratio" | "orientation" | "overflow-block" | "overflow-inline" | "horizontal-viewport-segments" | "vertical-viewport-segments" | "display-mode" | "resolution" | "scan" | "grid" | "update" | "environment-blending" | "color" | "color-index" | "monochrome" | "color-gamut" | "dynamic-range" | "inverted-colors" | "pointer" | "hover" | "any-pointer" | "any-hover" | "nav-controls" | "video-color-gamut" | "video-dynamic-range" | "scripting" | "prefers-reduced-motion" | "prefers-reduced-transparency" | "prefers-contrast" | "forced-colors" | "prefers-color-scheme" | "prefers-reduced-data" | "device-width" | "device-height" | "device-aspect-ratio" | "-webkit-device-pixel-ratio" | "-moz-device-pixel-ratio";
/**
 * [media feature value](https://drafts.csswg.org/mediaqueries/#typedef-mf-value) within a media query.
 *
 * See [MediaFeature](MediaFeature).
 */
type MediaFeatureValue = {
  type: "length";
  value: Length;
} | {
  type: "number";
  value: number;
} | {
  type: "integer";
  value: number;
} | {
  type: "boolean";
  value: boolean;
} | {
  type: "resolution";
  value: Resolution;
} | {
  type: "ratio";
  value: Ratio;
} | {
  type: "ident";
  value: String;
} | {
  type: "env";
  value: EnvironmentVariable;
};
/**
 * A CSS [`<length>`](https://www.w3.org/TR/css-values-4/#lengths) value, with support for `calc()`.
 */
type Length = {
  type: "value";
  value: LengthValue;
} | {
  type: "calc";
  value: CalcFor_Length;
};
type LengthUnit = "px" | "in" | "cm" | "mm" | "q" | "pt" | "pc" | "em" | "rem" | "ex" | "rex" | "ch" | "rch" | "cap" | "rcap" | "ic" | "ric" | "lh" | "rlh" | "vw" | "lvw" | "svw" | "dvw" | "cqw" | "vh" | "lvh" | "svh" | "dvh" | "cqh" | "vi" | "svi" | "lvi" | "dvi" | "cqi" | "vb" | "svb" | "lvb" | "dvb" | "cqb" | "vmin" | "svmin" | "lvmin" | "dvmin" | "cqmin" | "vmax" | "svmax" | "lvmax" | "dvmax" | "cqmax";
/**
 * A mathematical expression used within the [`calc()`](https://www.w3.org/TR/css-values-4/#calc-func) function.
 *
 * This type supports generic value types. Values such as [Length](super::length::Length), [Percentage](super::percentage::Percentage), [Time](super::time::Time), and [Angle](super::angle::Angle) support `calc()` expressions.
 */
type CalcFor_Length = {
  type: "value";
  value: Length;
} | {
  type: "number";
  value: number;
} | {
  type: "sum";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_Length, CalcFor_Length];
} | {
  type: "product";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [number, CalcFor_Length];
} | {
  type: "function";
  value: MathFunctionFor_Length;
};
/**
 * A CSS [math function](https://www.w3.org/TR/css-values-4/#math-function).
 *
 * Math functions may be used in most properties and values that accept numeric values, including lengths, percentages, angles, times, etc.
 */
type MathFunctionFor_Length = {
  type: "calc";
  value: CalcFor_Length;
} | {
  type: "min";
  value: CalcFor_Length[];
} | {
  type: "max";
  value: CalcFor_Length[];
} | {
  type: "clamp";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [CalcFor_Length, CalcFor_Length, CalcFor_Length];
} | {
  type: "round";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [RoundingStrategy, CalcFor_Length, CalcFor_Length];
} | {
  type: "rem";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_Length, CalcFor_Length];
} | {
  type: "mod";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_Length, CalcFor_Length];
} | {
  type: "abs";
  value: CalcFor_Length;
} | {
  type: "sign";
  value: CalcFor_Length;
} | {
  type: "hypot";
  value: CalcFor_Length[];
};
/**
 * A [rounding strategy](https://www.w3.org/TR/css-values-4/#typedef-rounding-strategy), as used in the `round()` function.
 */
type RoundingStrategy = "nearest" | "up" | "down" | "to-zero";
/**
 * A CSS [`<resolution>`](https://www.w3.org/TR/css-values-4/#resolution) value.
 */
type Resolution = {
  type: "dpi";
  value: number;
} | {
  type: "dpcm";
  value: number;
} | {
  type: "dppx";
  value: number;
};
/**
 * A CSS [`<ratio>`](https://www.w3.org/TR/css-values-4/#ratios) value, representing the ratio of two numeric values.
 *
 * @minItems 2
 * @maxItems 2
 */
type Ratio = [number, number];
/**
 * A raw CSS token, or a parsed value.
 */
type TokenOrValue = {
  type: "token";
  value: Token;
} | {
  type: "color";
  value: CssColor;
} | {
  type: "unresolved-color";
  value: UnresolvedColor;
} | {
  type: "url";
  value: Url;
} | {
  type: "var";
  value: Variable;
} | {
  type: "env";
  value: EnvironmentVariable;
} | {
  type: "function";
  value: Function;
} | {
  type: "length";
  value: LengthValue;
} | {
  type: "angle";
  value: Angle;
} | {
  type: "time";
  value: Time;
} | {
  type: "resolution";
  value: Resolution;
} | {
  type: "dashed-ident";
  value: String;
} | {
  type: "animation-name";
  value: AnimationName;
};
/**
 * A raw CSS token.
 */
type Token = {
  type: "ident";
  value: String;
} | {
  type: "at-keyword";
  value: String;
} | {
  type: "hash";
  value: String;
} | {
  type: "id-hash";
  value: String;
} | {
  type: "string";
  value: String;
} | {
  type: "unquoted-url";
  value: String;
} | {
  type: "delim";
  value: string;
} | {
  type: "number";
  /**
   * The value as a float
   */
  value: number;
} | {
  type: "percentage";
  /**
   * The value as a float, divided by 100 so that the nominal range is 0.0 to 1.0.
   */
  value: number;
} | {
  type: "dimension";
  /**
   * The unit, e.g. "px" in `12px`
   */
  unit: String;
  /**
   * The value as a float
   */
  value: number;
} | {
  type: "white-space";
  value: String;
} | {
  type: "comment";
  value: String;
} | {
  type: "colon";
} | {
  type: "semicolon";
} | {
  type: "comma";
} | {
  type: "include-match";
} | {
  type: "dash-match";
} | {
  type: "prefix-match";
} | {
  type: "suffix-match";
} | {
  type: "substring-match";
} | {
  type: "cdo";
} | {
  type: "cdc";
} | {
  type: "function";
  value: String;
} | {
  type: "parenthesis-block";
} | {
  type: "square-bracket-block";
} | {
  type: "curly-bracket-block";
} | {
  type: "bad-url";
  value: String;
} | {
  type: "bad-string";
  value: String;
} | {
  type: "close-parenthesis";
} | {
  type: "close-square-bracket";
} | {
  type: "close-curly-bracket";
};
/**
 * A CSS [`<color>`](https://www.w3.org/TR/css-color-4/#color-type) value.
 *
 * CSS supports many different color spaces to represent colors. The most common values are stored as RGBA using a single byte per component. Less common values are stored using a `Box` to reduce the amount of memory used per color.
 *
 * Each color space is represented as a struct that implements the `From` and `Into` traits for all other color spaces, so it is possible to convert between color spaces easily. In addition, colors support [interpolation](#method.interpolate) as in the `color-mix()` function.
 */
type CssColor = CurrentColor | RGBColor | LABColor | PredefinedColor | FloatColor | LightDark | SystemColor;
type CurrentColor = {
  type: "currentcolor";
};
type RGBColor = {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "rgb";
};
/**
 * A color in a LAB color space, including the `lab()`, `lch()`, `oklab()`, and `oklch()` functions.
 */
type LABColor = {
  /**
   * The a component.
   */
  a: number;
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The b component.
   */
  b: number;
  /**
   * The lightness component.
   */
  l: number;
  type: "lab";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The chroma component.
   */
  c: number;
  /**
   * The hue component.
   */
  h: number;
  /**
   * The lightness component.
   */
  l: number;
  type: "lch";
} | {
  /**
   * The a component.
   */
  a: number;
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The b component.
   */
  b: number;
  /**
   * The lightness component.
   */
  l: number;
  type: "oklab";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The chroma component.
   */
  c: number;
  /**
   * The hue component.
   */
  h: number;
  /**
   * The lightness component.
   */
  l: number;
  type: "oklch";
};
/**
 * A color in a predefined color space, e.g. `display-p3`.
 */
type PredefinedColor = {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "srgb";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "srgb-linear";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "display-p3";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "a98-rgb";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "prophoto-rgb";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "rec2020";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  type: "xyz-d50";
  /**
   * The x component.
   */
  x: number;
  /**
   * The y component.
   */
  y: number;
  /**
   * The z component.
   */
  z: number;
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  type: "xyz-d65";
  /**
   * The x component.
   */
  x: number;
  /**
   * The y component.
   */
  y: number;
  /**
   * The z component.
   */
  z: number;
};
/**
 * A floating point representation of color types that are usually stored as RGBA. These are used when there are any `none` components, which are represented as NaN.
 */
type FloatColor = {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "rgb";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The hue component.
   */
  h: number;
  /**
   * The lightness component.
   */
  l: number;
  /**
   * The saturation component.
   */
  s: number;
  type: "hsl";
} | {
  /**
   * The alpha component.
   */
  alpha: number;
  /**
   * The blackness component.
   */
  b: number;
  /**
   * The hue component.
   */
  h: number;
  type: "hwb";
  /**
   * The whiteness component.
   */
  w: number;
};
type LightDark = {
  dark: CssColor;
  light: CssColor;
  type: "light-dark";
};
/**
 * A CSS [system color](https://drafts.csswg.org/css-color/#css-system-colors) keyword.
 */
type SystemColor = "accentcolor" | "accentcolortext" | "activetext" | "buttonborder" | "buttonface" | "buttontext" | "canvas" | "canvastext" | "field" | "fieldtext" | "graytext" | "highlight" | "highlighttext" | "linktext" | "mark" | "marktext" | "selecteditem" | "selecteditemtext" | "visitedtext" | "activeborder" | "activecaption" | "appworkspace" | "background" | "buttonhighlight" | "buttonshadow" | "captiontext" | "inactiveborder" | "inactivecaption" | "inactivecaptiontext" | "infobackground" | "infotext" | "menu" | "menutext" | "scrollbar" | "threeddarkshadow" | "threedface" | "threedhighlight" | "threedlightshadow" | "threedshadow" | "window" | "windowframe" | "windowtext";
/**
 * A color value with an unresolved alpha value (e.g. a variable). These can be converted from the modern slash syntax to older comma syntax. This can only be done when the only unresolved component is the alpha since variables can resolve to multiple tokens.
 */
type UnresolvedColor = {
  /**
   * The unresolved alpha component.
   */
  alpha: TokenOrValue[];
  /**
   * The blue component.
   */
  b: number;
  /**
   * The green component.
   */
  g: number;
  /**
   * The red component.
   */
  r: number;
  type: "rgb";
} | {
  /**
   * The unresolved alpha component.
   */
  alpha: TokenOrValue[];
  /**
   * The hue component.
   */
  h: number;
  /**
   * The lightness component.
   */
  l: number;
  /**
   * The saturation component.
   */
  s: number;
  type: "hsl";
} | {
  /**
   * The dark value.
   */
  dark: TokenOrValue[];
  /**
   * The light value.
   */
  light: TokenOrValue[];
  type: "light-dark";
};
/**
 * Defines where the class names referenced in the `composes` property are located.
 *
 * See [Composes](Composes).
 */
type Specifier = {
  type: "global";
} | {
  type: "file";
  value: String;
} | {
  type: "source-index";
  value: number;
};
/**
 * A CSS [`<angle>`](https://www.w3.org/TR/css-values-4/#angles) value.
 *
 * Angles may be explicit or computed by `calc()`, but are always stored and serialized as their computed value.
 */
type Angle = {
  type: "deg";
  value: number;
} | {
  type: "rad";
  value: number;
} | {
  type: "grad";
  value: number;
} | {
  type: "turn";
  value: number;
};
/**
 * A CSS [`<time>`](https://www.w3.org/TR/css-values-4/#time) value, in either seconds or milliseconds.
 *
 * Time values may be explicit or computed by `calc()`, but are always stored and serialized as their computed value.
 */
type Time = {
  type: "seconds";
  value: number;
} | {
  type: "milliseconds";
  value: number;
};
/**
 * A value for the [animation-name](https://drafts.csswg.org/css-animations/#animation-name) property.
 */
type AnimationName = {
  type: "none";
} | {
  type: "ident";
  value: String;
} | {
  type: "string";
  value: String;
};
/**
 * A CSS environment variable name.
 */
type EnvironmentVariableName = {
  type: "ua";
  value: UAEnvironmentVariable;
} | {
  /**
   * CSS modules extension: the filename where the variable is defined. Only enabled when the CSS modules `dashed_idents` option is turned on.
   */
  from?: Specifier | null;
  /**
   * The referenced identifier.
   */
  ident: String;
  type: "custom";
} | {
  type: "unknown";
  value: String;
};
/**
 * A UA-defined environment variable name.
 */
type UAEnvironmentVariable = "safe-area-inset-top" | "safe-area-inset-right" | "safe-area-inset-bottom" | "safe-area-inset-left" | "viewport-segment-width" | "viewport-segment-height" | "viewport-segment-top" | "viewport-segment-left" | "viewport-segment-bottom" | "viewport-segment-right";
/**
 * A [comparator](https://drafts.csswg.org/mediaqueries/#typedef-mf-comparison) within a media query.
 */
type MediaFeatureComparison = "equal" | "greater-than" | "greater-than-equal" | "less-than" | "less-than-equal";
/**
 * A binary `and` or `or` operator.
 */
type Operator = "and" | "or";
type MediaType = string;
/**
 * A [media query qualifier](https://drafts.csswg.org/mediaqueries/#mq-prefix).
 */
type Qualifier = "only" | "not";
/**
 * A [`<supports-condition>`](https://drafts.csswg.org/css-conditional-3/#typedef-supports-condition), as used in the `@supports` and `@import` rules.
 */
type SupportsCondition = {
  type: "not";
  value: SupportsCondition;
} | {
  type: "and";
  value: SupportsCondition[];
} | {
  type: "or";
  value: SupportsCondition[];
} | {
  /**
   * The property id for the declaration.
   */
  propertyId: PropertyId;
  type: "declaration";
  /**
   * The raw value of the declaration.
   */
  value: String;
} | {
  type: "selector";
  value: String;
} | {
  type: "unknown";
  value: String;
};
type PropertyId = {
  property: "background-color";
} | {
  property: "background-image";
} | {
  property: "background-position-x";
} | {
  property: "background-position-y";
} | {
  property: "background-position";
} | {
  property: "background-size";
} | {
  property: "background-repeat";
} | {
  property: "background-attachment";
} | {
  property: "background-clip";
  vendorPrefix: VendorPrefix;
} | {
  property: "background-origin";
} | {
  property: "background";
} | {
  property: "box-shadow";
  vendorPrefix: VendorPrefix;
} | {
  property: "opacity";
} | {
  property: "color";
} | {
  property: "display";
} | {
  property: "visibility";
} | {
  property: "width";
} | {
  property: "height";
} | {
  property: "min-width";
} | {
  property: "min-height";
} | {
  property: "max-width";
} | {
  property: "max-height";
} | {
  property: "block-size";
} | {
  property: "inline-size";
} | {
  property: "min-block-size";
} | {
  property: "min-inline-size";
} | {
  property: "max-block-size";
} | {
  property: "max-inline-size";
} | {
  property: "box-sizing";
  vendorPrefix: VendorPrefix;
} | {
  property: "aspect-ratio";
} | {
  property: "overflow";
} | {
  property: "overflow-x";
} | {
  property: "overflow-y";
} | {
  property: "text-overflow";
  vendorPrefix: VendorPrefix;
} | {
  property: "position";
} | {
  property: "top";
} | {
  property: "bottom";
} | {
  property: "left";
} | {
  property: "right";
} | {
  property: "inset-block-start";
} | {
  property: "inset-block-end";
} | {
  property: "inset-inline-start";
} | {
  property: "inset-inline-end";
} | {
  property: "inset-block";
} | {
  property: "inset-inline";
} | {
  property: "inset";
} | {
  property: "border-spacing";
} | {
  property: "border-top-color";
} | {
  property: "border-bottom-color";
} | {
  property: "border-left-color";
} | {
  property: "border-right-color";
} | {
  property: "border-block-start-color";
} | {
  property: "border-block-end-color";
} | {
  property: "border-inline-start-color";
} | {
  property: "border-inline-end-color";
} | {
  property: "border-top-style";
} | {
  property: "border-bottom-style";
} | {
  property: "border-left-style";
} | {
  property: "border-right-style";
} | {
  property: "border-block-start-style";
} | {
  property: "border-block-end-style";
} | {
  property: "border-inline-start-style";
} | {
  property: "border-inline-end-style";
} | {
  property: "border-top-width";
} | {
  property: "border-bottom-width";
} | {
  property: "border-left-width";
} | {
  property: "border-right-width";
} | {
  property: "border-block-start-width";
} | {
  property: "border-block-end-width";
} | {
  property: "border-inline-start-width";
} | {
  property: "border-inline-end-width";
} | {
  property: "border-top-left-radius";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-top-right-radius";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-bottom-left-radius";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-bottom-right-radius";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-start-start-radius";
} | {
  property: "border-start-end-radius";
} | {
  property: "border-end-start-radius";
} | {
  property: "border-end-end-radius";
} | {
  property: "border-radius";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-image-source";
} | {
  property: "border-image-outset";
} | {
  property: "border-image-repeat";
} | {
  property: "border-image-width";
} | {
  property: "border-image-slice";
} | {
  property: "border-image";
  vendorPrefix: VendorPrefix;
} | {
  property: "border-color";
} | {
  property: "border-style";
} | {
  property: "border-width";
} | {
  property: "border-block-color";
} | {
  property: "border-block-style";
} | {
  property: "border-block-width";
} | {
  property: "border-inline-color";
} | {
  property: "border-inline-style";
} | {
  property: "border-inline-width";
} | {
  property: "border";
} | {
  property: "border-top";
} | {
  property: "border-bottom";
} | {
  property: "border-left";
} | {
  property: "border-right";
} | {
  property: "border-block";
} | {
  property: "border-block-start";
} | {
  property: "border-block-end";
} | {
  property: "border-inline";
} | {
  property: "border-inline-start";
} | {
  property: "border-inline-end";
} | {
  property: "outline";
} | {
  property: "outline-color";
} | {
  property: "outline-style";
} | {
  property: "outline-width";
} | {
  property: "flex-direction";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-wrap";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-flow";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-grow";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-shrink";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-basis";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex";
  vendorPrefix: VendorPrefix;
} | {
  property: "order";
  vendorPrefix: VendorPrefix;
} | {
  property: "align-content";
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-content";
  vendorPrefix: VendorPrefix;
} | {
  property: "place-content";
} | {
  property: "align-self";
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-self";
} | {
  property: "place-self";
} | {
  property: "align-items";
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-items";
} | {
  property: "place-items";
} | {
  property: "row-gap";
} | {
  property: "column-gap";
} | {
  property: "gap";
} | {
  property: "box-orient";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-direction";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-ordinal-group";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-align";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-flex";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-flex-group";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-pack";
  vendorPrefix: VendorPrefix;
} | {
  property: "box-lines";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-pack";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-order";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-align";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-item-align";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-line-pack";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-positive";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-negative";
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-preferred-size";
  vendorPrefix: VendorPrefix;
} | {
  property: "grid-template-columns";
} | {
  property: "grid-template-rows";
} | {
  property: "grid-auto-columns";
} | {
  property: "grid-auto-rows";
} | {
  property: "grid-auto-flow";
} | {
  property: "grid-template-areas";
} | {
  property: "grid-template";
} | {
  property: "grid";
} | {
  property: "grid-row-start";
} | {
  property: "grid-row-end";
} | {
  property: "grid-column-start";
} | {
  property: "grid-column-end";
} | {
  property: "grid-row";
} | {
  property: "grid-column";
} | {
  property: "grid-area";
} | {
  property: "margin-top";
} | {
  property: "margin-bottom";
} | {
  property: "margin-left";
} | {
  property: "margin-right";
} | {
  property: "margin-block-start";
} | {
  property: "margin-block-end";
} | {
  property: "margin-inline-start";
} | {
  property: "margin-inline-end";
} | {
  property: "margin-block";
} | {
  property: "margin-inline";
} | {
  property: "margin";
} | {
  property: "padding-top";
} | {
  property: "padding-bottom";
} | {
  property: "padding-left";
} | {
  property: "padding-right";
} | {
  property: "padding-block-start";
} | {
  property: "padding-block-end";
} | {
  property: "padding-inline-start";
} | {
  property: "padding-inline-end";
} | {
  property: "padding-block";
} | {
  property: "padding-inline";
} | {
  property: "padding";
} | {
  property: "scroll-margin-top";
} | {
  property: "scroll-margin-bottom";
} | {
  property: "scroll-margin-left";
} | {
  property: "scroll-margin-right";
} | {
  property: "scroll-margin-block-start";
} | {
  property: "scroll-margin-block-end";
} | {
  property: "scroll-margin-inline-start";
} | {
  property: "scroll-margin-inline-end";
} | {
  property: "scroll-margin-block";
} | {
  property: "scroll-margin-inline";
} | {
  property: "scroll-margin";
} | {
  property: "scroll-padding-top";
} | {
  property: "scroll-padding-bottom";
} | {
  property: "scroll-padding-left";
} | {
  property: "scroll-padding-right";
} | {
  property: "scroll-padding-block-start";
} | {
  property: "scroll-padding-block-end";
} | {
  property: "scroll-padding-inline-start";
} | {
  property: "scroll-padding-inline-end";
} | {
  property: "scroll-padding-block";
} | {
  property: "scroll-padding-inline";
} | {
  property: "scroll-padding";
} | {
  property: "font-weight";
} | {
  property: "font-size";
} | {
  property: "font-stretch";
} | {
  property: "font-family";
} | {
  property: "font-style";
} | {
  property: "font-variant-caps";
} | {
  property: "line-height";
} | {
  property: "font";
} | {
  property: "vertical-align";
} | {
  property: "font-palette";
} | {
  property: "transition-property";
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-duration";
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-delay";
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-timing-function";
  vendorPrefix: VendorPrefix;
} | {
  property: "transition";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-name";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-duration";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-timing-function";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-iteration-count";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-direction";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-play-state";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-delay";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-fill-mode";
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-composition";
} | {
  property: "animation-timeline";
} | {
  property: "animation-range-start";
} | {
  property: "animation-range-end";
} | {
  property: "animation-range";
} | {
  property: "animation";
  vendorPrefix: VendorPrefix;
} | {
  property: "transform";
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-origin";
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-style";
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-box";
} | {
  property: "backface-visibility";
  vendorPrefix: VendorPrefix;
} | {
  property: "perspective";
  vendorPrefix: VendorPrefix;
} | {
  property: "perspective-origin";
  vendorPrefix: VendorPrefix;
} | {
  property: "translate";
} | {
  property: "rotate";
} | {
  property: "scale";
} | {
  property: "text-transform";
} | {
  property: "white-space";
} | {
  property: "tab-size";
  vendorPrefix: VendorPrefix;
} | {
  property: "word-break";
} | {
  property: "line-break";
} | {
  property: "hyphens";
  vendorPrefix: VendorPrefix;
} | {
  property: "overflow-wrap";
} | {
  property: "word-wrap";
} | {
  property: "text-align";
} | {
  property: "text-align-last";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-justify";
} | {
  property: "word-spacing";
} | {
  property: "letter-spacing";
} | {
  property: "text-indent";
} | {
  property: "text-decoration-line";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-style";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-color";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-thickness";
} | {
  property: "text-decoration";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-skip-ink";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-style";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-color";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-position";
  vendorPrefix: VendorPrefix;
} | {
  property: "text-shadow";
} | {
  property: "text-size-adjust";
  vendorPrefix: VendorPrefix;
} | {
  property: "direction";
} | {
  property: "unicode-bidi";
} | {
  property: "box-decoration-break";
  vendorPrefix: VendorPrefix;
} | {
  property: "resize";
} | {
  property: "cursor";
} | {
  property: "caret-color";
} | {
  property: "caret-shape";
} | {
  property: "caret";
} | {
  property: "user-select";
  vendorPrefix: VendorPrefix;
} | {
  property: "accent-color";
} | {
  property: "appearance";
  vendorPrefix: VendorPrefix;
} | {
  property: "list-style-type";
} | {
  property: "list-style-image";
} | {
  property: "list-style-position";
} | {
  property: "list-style";
} | {
  property: "marker-side";
} | {
  property: "composes";
} | {
  property: "fill";
} | {
  property: "fill-rule";
} | {
  property: "fill-opacity";
} | {
  property: "stroke";
} | {
  property: "stroke-opacity";
} | {
  property: "stroke-width";
} | {
  property: "stroke-linecap";
} | {
  property: "stroke-linejoin";
} | {
  property: "stroke-miterlimit";
} | {
  property: "stroke-dasharray";
} | {
  property: "stroke-dashoffset";
} | {
  property: "marker-start";
} | {
  property: "marker-mid";
} | {
  property: "marker-end";
} | {
  property: "marker";
} | {
  property: "color-interpolation";
} | {
  property: "color-interpolation-filters";
} | {
  property: "color-rendering";
} | {
  property: "shape-rendering";
} | {
  property: "text-rendering";
} | {
  property: "image-rendering";
} | {
  property: "clip-path";
  vendorPrefix: VendorPrefix;
} | {
  property: "clip-rule";
} | {
  property: "mask-image";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-mode";
} | {
  property: "mask-repeat";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-position-x";
} | {
  property: "mask-position-y";
} | {
  property: "mask-position";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-clip";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-origin";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-size";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-composite";
} | {
  property: "mask-type";
} | {
  property: "mask";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-border-source";
} | {
  property: "mask-border-mode";
} | {
  property: "mask-border-slice";
} | {
  property: "mask-border-width";
} | {
  property: "mask-border-outset";
} | {
  property: "mask-border-repeat";
} | {
  property: "mask-border";
} | {
  property: "-webkit-mask-composite";
} | {
  property: "mask-source-type";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-source";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-slice";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-width";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-outset";
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-repeat";
  vendorPrefix: VendorPrefix;
} | {
  property: "filter";
  vendorPrefix: VendorPrefix;
} | {
  property: "backdrop-filter";
  vendorPrefix: VendorPrefix;
} | {
  property: "z-index";
} | {
  property: "container-type";
} | {
  property: "container-name";
} | {
  property: "container";
} | {
  property: "view-transition-name";
} | {
  property: "view-transition-class";
} | {
  property: "view-transition-group";
} | {
  property: "color-scheme";
} | {
  property: "print-color-adjust";
  vendorPrefix: VendorPrefix;
} | {
  property: "all";
} | {
  property: string;
};
type Prefix = "none" | "webkit" | "moz" | "ms" | "o";
type VendorPrefix = Prefix[];
type Declaration = {
  property: "background-color";
  value: CssColor;
} | {
  property: "background-image";
  value: Image[];
} | {
  property: "background-position-x";
  value: PositionComponentFor_HorizontalPositionKeyword[];
} | {
  property: "background-position-y";
  value: PositionComponentFor_VerticalPositionKeyword[];
} | {
  property: "background-position";
  value: BackgroundPosition[];
} | {
  property: "background-size";
  value: BackgroundSize[];
} | {
  property: "background-repeat";
  value: BackgroundRepeat[];
} | {
  property: "background-attachment";
  value: BackgroundAttachment[];
} | {
  property: "background-clip";
  value: BackgroundClip[];
  vendorPrefix: VendorPrefix;
} | {
  property: "background-origin";
  value: BackgroundOrigin[];
} | {
  property: "background";
  value: Background[];
} | {
  property: "box-shadow";
  value: BoxShadow[];
  vendorPrefix: VendorPrefix;
} | {
  property: "opacity";
  value: number;
} | {
  property: "color";
  value: CssColor;
} | {
  property: "display";
  value: Display;
} | {
  property: "visibility";
  value: Visibility;
} | {
  property: "width";
  value: Size;
} | {
  property: "height";
  value: Size;
} | {
  property: "min-width";
  value: Size;
} | {
  property: "min-height";
  value: Size;
} | {
  property: "max-width";
  value: MaxSize;
} | {
  property: "max-height";
  value: MaxSize;
} | {
  property: "block-size";
  value: Size;
} | {
  property: "inline-size";
  value: Size;
} | {
  property: "min-block-size";
  value: Size;
} | {
  property: "min-inline-size";
  value: Size;
} | {
  property: "max-block-size";
  value: MaxSize;
} | {
  property: "max-inline-size";
  value: MaxSize;
} | {
  property: "box-sizing";
  value: BoxSizing;
  vendorPrefix: VendorPrefix;
} | {
  property: "aspect-ratio";
  value: AspectRatio;
} | {
  property: "overflow";
  value: Overflow;
} | {
  property: "overflow-x";
  value: OverflowKeyword;
} | {
  property: "overflow-y";
  value: OverflowKeyword;
} | {
  property: "text-overflow";
  value: TextOverflow;
  vendorPrefix: VendorPrefix;
} | {
  property: "position";
  value: Position2;
} | {
  property: "top";
  value: LengthPercentageOrAuto;
} | {
  property: "bottom";
  value: LengthPercentageOrAuto;
} | {
  property: "left";
  value: LengthPercentageOrAuto;
} | {
  property: "right";
  value: LengthPercentageOrAuto;
} | {
  property: "inset-block-start";
  value: LengthPercentageOrAuto;
} | {
  property: "inset-block-end";
  value: LengthPercentageOrAuto;
} | {
  property: "inset-inline-start";
  value: LengthPercentageOrAuto;
} | {
  property: "inset-inline-end";
  value: LengthPercentageOrAuto;
} | {
  property: "inset-block";
  value: InsetBlock;
} | {
  property: "inset-inline";
  value: InsetInline;
} | {
  property: "inset";
  value: Inset;
} | {
  property: "border-spacing";
  value: Size2DFor_Length;
} | {
  property: "border-top-color";
  value: CssColor;
} | {
  property: "border-bottom-color";
  value: CssColor;
} | {
  property: "border-left-color";
  value: CssColor;
} | {
  property: "border-right-color";
  value: CssColor;
} | {
  property: "border-block-start-color";
  value: CssColor;
} | {
  property: "border-block-end-color";
  value: CssColor;
} | {
  property: "border-inline-start-color";
  value: CssColor;
} | {
  property: "border-inline-end-color";
  value: CssColor;
} | {
  property: "border-top-style";
  value: LineStyle;
} | {
  property: "border-bottom-style";
  value: LineStyle;
} | {
  property: "border-left-style";
  value: LineStyle;
} | {
  property: "border-right-style";
  value: LineStyle;
} | {
  property: "border-block-start-style";
  value: LineStyle;
} | {
  property: "border-block-end-style";
  value: LineStyle;
} | {
  property: "border-inline-start-style";
  value: LineStyle;
} | {
  property: "border-inline-end-style";
  value: LineStyle;
} | {
  property: "border-top-width";
  value: BorderSideWidth;
} | {
  property: "border-bottom-width";
  value: BorderSideWidth;
} | {
  property: "border-left-width";
  value: BorderSideWidth;
} | {
  property: "border-right-width";
  value: BorderSideWidth;
} | {
  property: "border-block-start-width";
  value: BorderSideWidth;
} | {
  property: "border-block-end-width";
  value: BorderSideWidth;
} | {
  property: "border-inline-start-width";
  value: BorderSideWidth;
} | {
  property: "border-inline-end-width";
  value: BorderSideWidth;
} | {
  property: "border-top-left-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-top-right-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-bottom-left-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-bottom-right-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-start-start-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
} | {
  property: "border-start-end-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
} | {
  property: "border-end-start-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
} | {
  property: "border-end-end-radius";
  value: Size2DFor_DimensionPercentageFor_LengthValue;
} | {
  property: "border-radius";
  value: BorderRadius;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-image-source";
  value: Image;
} | {
  property: "border-image-outset";
  value: RectFor_LengthOrNumber;
} | {
  property: "border-image-repeat";
  value: BorderImageRepeat;
} | {
  property: "border-image-width";
  value: RectFor_BorderImageSideWidth;
} | {
  property: "border-image-slice";
  value: BorderImageSlice;
} | {
  property: "border-image";
  value: BorderImage;
  vendorPrefix: VendorPrefix;
} | {
  property: "border-color";
  value: BorderColor;
} | {
  property: "border-style";
  value: BorderStyle;
} | {
  property: "border-width";
  value: BorderWidth;
} | {
  property: "border-block-color";
  value: BorderBlockColor;
} | {
  property: "border-block-style";
  value: BorderBlockStyle;
} | {
  property: "border-block-width";
  value: BorderBlockWidth;
} | {
  property: "border-inline-color";
  value: BorderInlineColor;
} | {
  property: "border-inline-style";
  value: BorderInlineStyle;
} | {
  property: "border-inline-width";
  value: BorderInlineWidth;
} | {
  property: "border";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-top";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-bottom";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-left";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-right";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-block";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-block-start";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-block-end";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-inline";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-inline-start";
  value: GenericBorderFor_LineStyle;
} | {
  property: "border-inline-end";
  value: GenericBorderFor_LineStyle;
} | {
  property: "outline";
  value: GenericBorderFor_OutlineStyleAnd_11;
} | {
  property: "outline-color";
  value: CssColor;
} | {
  property: "outline-style";
  value: OutlineStyle;
} | {
  property: "outline-width";
  value: BorderSideWidth;
} | {
  property: "flex-direction";
  value: FlexDirection;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-wrap";
  value: FlexWrap;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-flow";
  value: FlexFlow;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-grow";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-shrink";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-basis";
  value: LengthPercentageOrAuto;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex";
  value: Flex;
  vendorPrefix: VendorPrefix;
} | {
  property: "order";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "align-content";
  value: AlignContent;
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-content";
  value: JustifyContent;
  vendorPrefix: VendorPrefix;
} | {
  property: "place-content";
  value: PlaceContent;
} | {
  property: "align-self";
  value: AlignSelf;
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-self";
  value: JustifySelf;
} | {
  property: "place-self";
  value: PlaceSelf;
} | {
  property: "align-items";
  value: AlignItems;
  vendorPrefix: VendorPrefix;
} | {
  property: "justify-items";
  value: JustifyItems;
} | {
  property: "place-items";
  value: PlaceItems;
} | {
  property: "row-gap";
  value: GapValue;
} | {
  property: "column-gap";
  value: GapValue;
} | {
  property: "gap";
  value: Gap;
} | {
  property: "box-orient";
  value: BoxOrient;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-direction";
  value: BoxDirection;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-ordinal-group";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-align";
  value: BoxAlign;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-flex";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-flex-group";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-pack";
  value: BoxPack;
  vendorPrefix: VendorPrefix;
} | {
  property: "box-lines";
  value: BoxLines;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-pack";
  value: FlexPack;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-order";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-align";
  value: BoxAlign;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-item-align";
  value: FlexItemAlign;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-line-pack";
  value: FlexLinePack;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-positive";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-negative";
  value: number;
  vendorPrefix: VendorPrefix;
} | {
  property: "flex-preferred-size";
  value: LengthPercentageOrAuto;
  vendorPrefix: VendorPrefix;
} | {
  property: "grid-template-columns";
  value: TrackSizing;
} | {
  property: "grid-template-rows";
  value: TrackSizing;
} | {
  property: "grid-auto-columns";
  value: TrackSize[];
} | {
  property: "grid-auto-rows";
  value: TrackSize[];
} | {
  property: "grid-auto-flow";
  value: GridAutoFlow;
} | {
  property: "grid-template-areas";
  value: GridTemplateAreas;
} | {
  property: "grid-template";
  value: GridTemplate;
} | {
  property: "grid";
  value: Grid;
} | {
  property: "grid-row-start";
  value: GridLine;
} | {
  property: "grid-row-end";
  value: GridLine;
} | {
  property: "grid-column-start";
  value: GridLine;
} | {
  property: "grid-column-end";
  value: GridLine;
} | {
  property: "grid-row";
  value: GridRow;
} | {
  property: "grid-column";
  value: GridColumn;
} | {
  property: "grid-area";
  value: GridArea;
} | {
  property: "margin-top";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-bottom";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-left";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-right";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-block-start";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-block-end";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-inline-start";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-inline-end";
  value: LengthPercentageOrAuto;
} | {
  property: "margin-block";
  value: MarginBlock;
} | {
  property: "margin-inline";
  value: MarginInline;
} | {
  property: "margin";
  value: Margin;
} | {
  property: "padding-top";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-bottom";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-left";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-right";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-block-start";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-block-end";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-inline-start";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-inline-end";
  value: LengthPercentageOrAuto;
} | {
  property: "padding-block";
  value: PaddingBlock;
} | {
  property: "padding-inline";
  value: PaddingInline;
} | {
  property: "padding";
  value: Padding;
} | {
  property: "scroll-margin-top";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-bottom";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-left";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-right";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-block-start";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-block-end";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-inline-start";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-inline-end";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-margin-block";
  value: ScrollMarginBlock;
} | {
  property: "scroll-margin-inline";
  value: ScrollMarginInline;
} | {
  property: "scroll-margin";
  value: ScrollMargin;
} | {
  property: "scroll-padding-top";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-bottom";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-left";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-right";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-block-start";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-block-end";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-inline-start";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-inline-end";
  value: LengthPercentageOrAuto;
} | {
  property: "scroll-padding-block";
  value: ScrollPaddingBlock;
} | {
  property: "scroll-padding-inline";
  value: ScrollPaddingInline;
} | {
  property: "scroll-padding";
  value: ScrollPadding;
} | {
  property: "font-weight";
  value: FontWeight;
} | {
  property: "font-size";
  value: FontSize;
} | {
  property: "font-stretch";
  value: FontStretch;
} | {
  property: "font-family";
  value: FontFamily[];
} | {
  property: "font-style";
  value: FontStyle;
} | {
  property: "font-variant-caps";
  value: FontVariantCaps;
} | {
  property: "line-height";
  value: LineHeight;
} | {
  property: "font";
  value: Font;
} | {
  property: "vertical-align";
  value: VerticalAlign;
} | {
  property: "font-palette";
  value: DashedIdentReference;
} | {
  property: "transition-property";
  value: PropertyId[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-duration";
  value: Time[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-delay";
  value: Time[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transition-timing-function";
  value: EasingFunction[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transition";
  value: Transition[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-name";
  value: AnimationName[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-duration";
  value: Time[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-timing-function";
  value: EasingFunction[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-iteration-count";
  value: AnimationIterationCount[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-direction";
  value: AnimationDirection[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-play-state";
  value: AnimationPlayState[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-delay";
  value: Time[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-fill-mode";
  value: AnimationFillMode[];
  vendorPrefix: VendorPrefix;
} | {
  property: "animation-composition";
  value: AnimationComposition[];
} | {
  property: "animation-timeline";
  value: AnimationTimeline[];
} | {
  property: "animation-range-start";
  value: AnimationRangeStart[];
} | {
  property: "animation-range-end";
  value: AnimationRangeEnd[];
} | {
  property: "animation-range";
  value: AnimationRange[];
} | {
  property: "animation";
  value: Animation[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transform";
  value: Transform[];
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-origin";
  value: Position;
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-style";
  value: TransformStyle;
  vendorPrefix: VendorPrefix;
} | {
  property: "transform-box";
  value: TransformBox;
} | {
  property: "backface-visibility";
  value: BackfaceVisibility;
  vendorPrefix: VendorPrefix;
} | {
  property: "perspective";
  value: Perspective;
  vendorPrefix: VendorPrefix;
} | {
  property: "perspective-origin";
  value: Position;
  vendorPrefix: VendorPrefix;
} | {
  property: "translate";
  value: Translate;
} | {
  property: "rotate";
  value: Rotate;
} | {
  property: "scale";
  value: Scale;
} | {
  property: "text-transform";
  value: TextTransform;
} | {
  property: "white-space";
  value: WhiteSpace;
} | {
  property: "tab-size";
  value: LengthOrNumber;
  vendorPrefix: VendorPrefix;
} | {
  property: "word-break";
  value: WordBreak;
} | {
  property: "line-break";
  value: LineBreak;
} | {
  property: "hyphens";
  value: Hyphens;
  vendorPrefix: VendorPrefix;
} | {
  property: "overflow-wrap";
  value: OverflowWrap;
} | {
  property: "word-wrap";
  value: OverflowWrap;
} | {
  property: "text-align";
  value: TextAlign;
} | {
  property: "text-align-last";
  value: TextAlignLast;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-justify";
  value: TextJustify;
} | {
  property: "word-spacing";
  value: Spacing;
} | {
  property: "letter-spacing";
  value: Spacing;
} | {
  property: "text-indent";
  value: TextIndent;
} | {
  property: "text-decoration-line";
  value: TextDecorationLine;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-style";
  value: TextDecorationStyle;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-color";
  value: CssColor;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-thickness";
  value: TextDecorationThickness;
} | {
  property: "text-decoration";
  value: TextDecoration;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-decoration-skip-ink";
  value: TextDecorationSkipInk;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-style";
  value: TextEmphasisStyle;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-color";
  value: CssColor;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis";
  value: TextEmphasis;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-emphasis-position";
  value: TextEmphasisPosition;
  vendorPrefix: VendorPrefix;
} | {
  property: "text-shadow";
  value: TextShadow[];
} | {
  property: "text-size-adjust";
  value: TextSizeAdjust;
  vendorPrefix: VendorPrefix;
} | {
  property: "direction";
  value: Direction2;
} | {
  property: "unicode-bidi";
  value: UnicodeBidi;
} | {
  property: "box-decoration-break";
  value: BoxDecorationBreak;
  vendorPrefix: VendorPrefix;
} | {
  property: "resize";
  value: Resize;
} | {
  property: "cursor";
  value: Cursor;
} | {
  property: "caret-color";
  value: ColorOrAuto;
} | {
  property: "caret-shape";
  value: CaretShape;
} | {
  property: "caret";
  value: Caret;
} | {
  property: "user-select";
  value: UserSelect;
  vendorPrefix: VendorPrefix;
} | {
  property: "accent-color";
  value: ColorOrAuto;
} | {
  property: "appearance";
  value: Appearance;
  vendorPrefix: VendorPrefix;
} | {
  property: "list-style-type";
  value: ListStyleType;
} | {
  property: "list-style-image";
  value: Image;
} | {
  property: "list-style-position";
  value: ListStylePosition;
} | {
  property: "list-style";
  value: ListStyle;
} | {
  property: "marker-side";
  value: MarkerSide;
} | {
  property: "composes";
  value: Composes;
} | {
  property: "fill";
  value: SVGPaint;
} | {
  property: "fill-rule";
  value: FillRule;
} | {
  property: "fill-opacity";
  value: number;
} | {
  property: "stroke";
  value: SVGPaint;
} | {
  property: "stroke-opacity";
  value: number;
} | {
  property: "stroke-width";
  value: DimensionPercentageFor_LengthValue;
} | {
  property: "stroke-linecap";
  value: StrokeLinecap;
} | {
  property: "stroke-linejoin";
  value: StrokeLinejoin;
} | {
  property: "stroke-miterlimit";
  value: number;
} | {
  property: "stroke-dasharray";
  value: StrokeDasharray;
} | {
  property: "stroke-dashoffset";
  value: DimensionPercentageFor_LengthValue;
} | {
  property: "marker-start";
  value: Marker;
} | {
  property: "marker-mid";
  value: Marker;
} | {
  property: "marker-end";
  value: Marker;
} | {
  property: "marker";
  value: Marker;
} | {
  property: "color-interpolation";
  value: ColorInterpolation;
} | {
  property: "color-interpolation-filters";
  value: ColorInterpolation;
} | {
  property: "color-rendering";
  value: ColorRendering;
} | {
  property: "shape-rendering";
  value: ShapeRendering;
} | {
  property: "text-rendering";
  value: TextRendering;
} | {
  property: "image-rendering";
  value: ImageRendering;
} | {
  property: "clip-path";
  value: ClipPath;
  vendorPrefix: VendorPrefix;
} | {
  property: "clip-rule";
  value: FillRule;
} | {
  property: "mask-image";
  value: Image[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-mode";
  value: MaskMode[];
} | {
  property: "mask-repeat";
  value: BackgroundRepeat[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-position-x";
  value: PositionComponentFor_HorizontalPositionKeyword[];
} | {
  property: "mask-position-y";
  value: PositionComponentFor_VerticalPositionKeyword[];
} | {
  property: "mask-position";
  value: Position[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-clip";
  value: MaskClip[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-origin";
  value: GeometryBox[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-size";
  value: BackgroundSize[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-composite";
  value: MaskComposite[];
} | {
  property: "mask-type";
  value: MaskType;
} | {
  property: "mask";
  value: Mask[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-border-source";
  value: Image;
} | {
  property: "mask-border-mode";
  value: MaskBorderMode;
} | {
  property: "mask-border-slice";
  value: BorderImageSlice;
} | {
  property: "mask-border-width";
  value: RectFor_BorderImageSideWidth;
} | {
  property: "mask-border-outset";
  value: RectFor_LengthOrNumber;
} | {
  property: "mask-border-repeat";
  value: BorderImageRepeat;
} | {
  property: "mask-border";
  value: MaskBorder;
} | {
  property: "-webkit-mask-composite";
  value: WebKitMaskComposite[];
} | {
  property: "mask-source-type";
  value: WebKitMaskSourceType[];
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image";
  value: BorderImage;
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-source";
  value: Image;
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-slice";
  value: BorderImageSlice;
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-width";
  value: RectFor_BorderImageSideWidth;
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-outset";
  value: RectFor_LengthOrNumber;
  vendorPrefix: VendorPrefix;
} | {
  property: "mask-box-image-repeat";
  value: BorderImageRepeat;
  vendorPrefix: VendorPrefix;
} | {
  property: "filter";
  value: FilterList;
  vendorPrefix: VendorPrefix;
} | {
  property: "backdrop-filter";
  value: FilterList;
  vendorPrefix: VendorPrefix;
} | {
  property: "z-index";
  value: ZIndex;
} | {
  property: "container-type";
  value: ContainerType;
} | {
  property: "container-name";
  value: ContainerNameList;
} | {
  property: "container";
  value: Container;
} | {
  property: "view-transition-name";
  value: ViewTransitionName;
} | {
  property: "view-transition-class";
  value: NoneOrCustomIdentList;
} | {
  property: "view-transition-group";
  value: ViewTransitionGroup;
} | {
  property: "color-scheme";
  value: ColorScheme;
} | {
  property: "print-color-adjust";
  value: PrintColorAdjust;
  vendorPrefix: VendorPrefix;
} | {
  property: "all";
  value: CSSWideKeyword;
} | {
  property: "unparsed";
  value: UnparsedProperty;
} | {
  property: "custom";
  value: CustomProperty;
};
/**
 * A CSS [`<image>`](https://www.w3.org/TR/css-images-3/#image-values) value.
 */
type Image = {
  type: "none";
} | {
  type: "url";
  value: Url;
} | {
  type: "gradient";
  value: Gradient;
} | {
  type: "image-set";
  value: ImageSet;
};
/**
 * A CSS [`<gradient>`](https://www.w3.org/TR/css-images-3/#gradients) value.
 */
type Gradient = {
  /**
   * The direction of the gradient.
   */
  direction: LineDirection;
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_LengthValue[];
  type: "linear";
  /**
   * The vendor prefixes for the gradient.
   */
  vendorPrefix: VendorPrefix;
} | {
  /**
   * The direction of the gradient.
   */
  direction: LineDirection;
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_LengthValue[];
  type: "repeating-linear";
  /**
   * The vendor prefixes for the gradient.
   */
  vendorPrefix: VendorPrefix;
} | {
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_LengthValue[];
  /**
   * The position of the gradient.
   */
  position: Position;
  /**
   * The shape of the gradient.
   */
  shape: EndingShape;
  type: "radial";
  /**
   * The vendor prefixes for the gradient.
   */
  vendorPrefix: VendorPrefix;
} | {
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_LengthValue[];
  /**
   * The position of the gradient.
   */
  position: Position;
  /**
   * The shape of the gradient.
   */
  shape: EndingShape;
  type: "repeating-radial";
  /**
   * The vendor prefixes for the gradient.
   */
  vendorPrefix: VendorPrefix;
} | {
  /**
   * The angle of the gradient.
   */
  angle: Angle;
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_Angle[];
  /**
   * The position of the gradient.
   */
  position: Position;
  type: "conic";
} | {
  /**
   * The angle of the gradient.
   */
  angle: Angle;
  /**
   * The color stops and transition hints for the gradient.
   */
  items: GradientItemFor_DimensionPercentageFor_Angle[];
  /**
   * The position of the gradient.
   */
  position: Position;
  type: "repeating-conic";
} | ({
  type: "webkit-gradient";
  /**
   * The starting point of the gradient.
   */
  from: WebKitGradientPoint;
  kind: "linear";
  /**
   * The color stops in the gradient.
   */
  stops: WebKitColorStop[];
  /**
   * The ending point of the gradient.
   */
  to: WebKitGradientPoint;
} | {
  type: "webkit-gradient";
  /**
   * The starting point of the gradient.
   */
  from: WebKitGradientPoint;
  kind: "radial";
  /**
   * The starting radius of the gradient.
   */
  r0: number;
  /**
   * The ending radius of the gradient.
   */
  r1: number;
  /**
   * The color stops in the gradient.
   */
  stops: WebKitColorStop[];
  /**
   * The ending point of the gradient.
   */
  to: WebKitGradientPoint;
});
/**
 * The direction of a CSS `linear-gradient()`.
 *
 * See [LinearGradient](LinearGradient).
 */
type LineDirection = {
  type: "angle";
  value: Angle;
} | {
  type: "horizontal";
  value: HorizontalPositionKeyword;
} | {
  type: "vertical";
  value: VerticalPositionKeyword;
} | {
  /**
   * A horizontal position keyword, e.g. `left` or `right.
   */
  horizontal: HorizontalPositionKeyword;
  type: "corner";
  /**
   * A vertical posision keyword, e.g. `top` or `bottom`.
   */
  vertical: VerticalPositionKeyword;
};
/**
 * A horizontal position keyword.
 */
type HorizontalPositionKeyword = "left" | "right";
/**
 * A vertical position keyword.
 */
type VerticalPositionKeyword = "top" | "bottom";
/**
 * Either a color stop or interpolation hint within a gradient.
 *
 * This type is generic, and items may be either a [LengthPercentage](super::length::LengthPercentage) or [Angle](super::angle::Angle) depending on what type of gradient it is within.
 */
type GradientItemFor_DimensionPercentageFor_LengthValue = {
  /**
   * The color of the color stop.
   */
  color: CssColor;
  /**
   * The position of the color stop.
   */
  position?: DimensionPercentageFor_LengthValue | null;
  type: "color-stop";
} | {
  type: "hint";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A generic type that allows any kind of dimension and percentage to be used standalone or mixed within a `calc()` expression.
 *
 * <https://drafts.csswg.org/css-values-4/#mixed-percentages>
 */
type DimensionPercentageFor_LengthValue = {
  type: "dimension";
  value: LengthValue;
} | {
  type: "percentage";
  value: number;
} | {
  type: "calc";
  value: CalcFor_DimensionPercentageFor_LengthValue;
};
/**
 * A mathematical expression used within the [`calc()`](https://www.w3.org/TR/css-values-4/#calc-func) function.
 *
 * This type supports generic value types. Values such as [Length](super::length::Length), [Percentage](super::percentage::Percentage), [Time](super::time::Time), and [Angle](super::angle::Angle) support `calc()` expressions.
 */
type CalcFor_DimensionPercentageFor_LengthValue = {
  type: "value";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "number";
  value: number;
} | {
  type: "sum";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "product";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [number, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "function";
  value: MathFunctionFor_DimensionPercentageFor_LengthValue;
};
/**
 * A CSS [math function](https://www.w3.org/TR/css-values-4/#math-function).
 *
 * Math functions may be used in most properties and values that accept numeric values, including lengths, percentages, angles, times, etc.
 */
type MathFunctionFor_DimensionPercentageFor_LengthValue = {
  type: "calc";
  value: CalcFor_DimensionPercentageFor_LengthValue;
} | {
  type: "min";
  value: CalcFor_DimensionPercentageFor_LengthValue[];
} | {
  type: "max";
  value: CalcFor_DimensionPercentageFor_LengthValue[];
} | {
  type: "clamp";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "round";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [RoundingStrategy, CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "rem";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "mod";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_LengthValue, CalcFor_DimensionPercentageFor_LengthValue];
} | {
  type: "abs";
  value: CalcFor_DimensionPercentageFor_LengthValue;
} | {
  type: "sign";
  value: CalcFor_DimensionPercentageFor_LengthValue;
} | {
  type: "hypot";
  value: CalcFor_DimensionPercentageFor_LengthValue[];
};
/**
 * A component within a [Position](Position) value, representing a position along either the horizontal or vertical axis of a box.
 *
 * This type is generic over side keywords.
 */
type PositionComponentFor_HorizontalPositionKeyword = {
  type: "center";
} | {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
} | {
  /**
   * Offset from the side.
   */
  offset?: DimensionPercentageFor_LengthValue | null;
  /**
   * A side keyword.
   */
  side: HorizontalPositionKeyword;
  type: "side";
};
/**
 * A component within a [Position](Position) value, representing a position along either the horizontal or vertical axis of a box.
 *
 * This type is generic over side keywords.
 */
type PositionComponentFor_VerticalPositionKeyword = {
  type: "center";
} | {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
} | {
  /**
   * Offset from the side.
   */
  offset?: DimensionPercentageFor_LengthValue | null;
  /**
   * A side keyword.
   */
  side: VerticalPositionKeyword;
  type: "side";
};
/**
 * A `radial-gradient()` [ending shape](https://www.w3.org/TR/css-images-3/#valdef-radial-gradient-ending-shape).
 *
 * See [RadialGradient](RadialGradient).
 */
type EndingShape = {
  type: "ellipse";
  value: Ellipse;
} | {
  type: "circle";
  value: Circle;
};
/**
 * An ellipse ending shape for a `radial-gradient()`.
 *
 * See [RadialGradient](RadialGradient).
 */
type Ellipse = {
  type: "size";
  /**
   * The x-radius of the ellipse.
   */
  x: DimensionPercentageFor_LengthValue;
  /**
   * The y-radius of the ellipse.
   */
  y: DimensionPercentageFor_LengthValue;
} | {
  type: "extent";
  value: ShapeExtent;
};
/**
 * A shape extent for a `radial-gradient()`.
 *
 * See [RadialGradient](RadialGradient).
 */
type ShapeExtent = "closest-side" | "farthest-side" | "closest-corner" | "farthest-corner";
/**
 * A circle ending shape for a `radial-gradient()`.
 *
 * See [RadialGradient](RadialGradient).
 */
type Circle = {
  type: "radius";
  value: Length;
} | {
  type: "extent";
  value: ShapeExtent;
};
/**
 * Either a color stop or interpolation hint within a gradient.
 *
 * This type is generic, and items may be either a [LengthPercentage](super::length::LengthPercentage) or [Angle](super::angle::Angle) depending on what type of gradient it is within.
 */
type GradientItemFor_DimensionPercentageFor_Angle = {
  /**
   * The color of the color stop.
   */
  color: CssColor;
  /**
   * The position of the color stop.
   */
  position?: DimensionPercentageFor_Angle | null;
  type: "color-stop";
} | {
  type: "hint";
  value: DimensionPercentageFor_Angle;
};
/**
 * A generic type that allows any kind of dimension and percentage to be used standalone or mixed within a `calc()` expression.
 *
 * <https://drafts.csswg.org/css-values-4/#mixed-percentages>
 */
type DimensionPercentageFor_Angle = {
  type: "dimension";
  value: Angle;
} | {
  type: "percentage";
  value: number;
} | {
  type: "calc";
  value: CalcFor_DimensionPercentageFor_Angle;
};
/**
 * A mathematical expression used within the [`calc()`](https://www.w3.org/TR/css-values-4/#calc-func) function.
 *
 * This type supports generic value types. Values such as [Length](super::length::Length), [Percentage](super::percentage::Percentage), [Time](super::time::Time), and [Angle](super::angle::Angle) support `calc()` expressions.
 */
type CalcFor_DimensionPercentageFor_Angle = {
  type: "value";
  value: DimensionPercentageFor_Angle;
} | {
  type: "number";
  value: number;
} | {
  type: "sum";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "product";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [number, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "function";
  value: MathFunctionFor_DimensionPercentageFor_Angle;
};
/**
 * A CSS [math function](https://www.w3.org/TR/css-values-4/#math-function).
 *
 * Math functions may be used in most properties and values that accept numeric values, including lengths, percentages, angles, times, etc.
 */
type MathFunctionFor_DimensionPercentageFor_Angle = {
  type: "calc";
  value: CalcFor_DimensionPercentageFor_Angle;
} | {
  type: "min";
  value: CalcFor_DimensionPercentageFor_Angle[];
} | {
  type: "max";
  value: CalcFor_DimensionPercentageFor_Angle[];
} | {
  type: "clamp";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "round";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [RoundingStrategy, CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "rem";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "mod";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [CalcFor_DimensionPercentageFor_Angle, CalcFor_DimensionPercentageFor_Angle];
} | {
  type: "abs";
  value: CalcFor_DimensionPercentageFor_Angle;
} | {
  type: "sign";
  value: CalcFor_DimensionPercentageFor_Angle;
} | {
  type: "hypot";
  value: CalcFor_DimensionPercentageFor_Angle[];
};
/**
 * A keyword or number within a [WebKitGradientPoint](WebKitGradientPoint).
 */
type WebKitGradientPointComponentFor_HorizontalPositionKeyword = {
  type: "center";
} | {
  type: "number";
  value: NumberOrPercentage;
} | {
  type: "side";
  value: HorizontalPositionKeyword;
};
/**
 * Either a `<number>` or `<percentage>`.
 */
type NumberOrPercentage = {
  type: "number";
  value: number;
} | {
  type: "percentage";
  value: number;
};
/**
 * A keyword or number within a [WebKitGradientPoint](WebKitGradientPoint).
 */
type WebKitGradientPointComponentFor_VerticalPositionKeyword = {
  type: "center";
} | {
  type: "number";
  value: NumberOrPercentage;
} | {
  type: "side";
  value: VerticalPositionKeyword;
};
/**
 * A value for the [background-size](https://www.w3.org/TR/css-backgrounds-3/#background-size) property.
 */
type BackgroundSize = {
  /**
   * The height of the background.
   */
  height: LengthPercentageOrAuto;
  type: "explicit";
  /**
   * The width of the background.
   */
  width: LengthPercentageOrAuto;
} | {
  type: "cover";
} | {
  type: "contain";
};
/**
 * Either a [`<length-percentage>`](https://www.w3.org/TR/css-values-4/#typedef-length-percentage), or the `auto` keyword.
 */
type LengthPercentageOrAuto = {
  type: "auto";
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A [`<repeat-style>`](https://www.w3.org/TR/css-backgrounds-3/#typedef-repeat-style) value, used within the `background-repeat` property to represent how a background image is repeated in a single direction.
 *
 * See [BackgroundRepeat](BackgroundRepeat).
 */
type BackgroundRepeatKeyword = "repeat" | "space" | "round" | "no-repeat";
/**
 * A value for the [background-attachment](https://www.w3.org/TR/css-backgrounds-3/#background-attachment) property.
 */
type BackgroundAttachment = "scroll" | "fixed" | "local";
/**
 * A value for the [background-clip](https://drafts.csswg.org/css-backgrounds-4/#background-clip) property.
 */
type BackgroundClip = "border-box" | "padding-box" | "content-box" | "border" | "text";
/**
 * A value for the [background-origin](https://www.w3.org/TR/css-backgrounds-3/#background-origin) property.
 */
type BackgroundOrigin = "border-box" | "padding-box" | "content-box";
/**
 * A value for the [display](https://drafts.csswg.org/css-display-3/#the-display-properties) property.
 */
type Display = {
  type: "keyword";
  value: DisplayKeyword;
} | {
  /**
   * The inside display value.
   */
  inside: DisplayInside;
  /**
   * Whether this is a list item.
   */
  isListItem: boolean;
  /**
   * The outside display value.
   */
  outside: DisplayOutside;
  type: "pair";
};
/**
 * A `display` keyword.
 *
 * See [Display](Display).
 */
type DisplayKeyword = "none" | "contents" | "table-row-group" | "table-header-group" | "table-footer-group" | "table-row" | "table-cell" | "table-column-group" | "table-column" | "table-caption" | "ruby-base" | "ruby-text" | "ruby-base-container" | "ruby-text-container";
/**
 * A [`<display-inside>`](https://drafts.csswg.org/css-display-3/#typedef-display-inside) value.
 */
type DisplayInside = {
  type: "flow";
} | {
  type: "flow-root";
} | {
  type: "table";
} | {
  type: "flex";
  vendorPrefix: VendorPrefix;
} | {
  type: "box";
  vendorPrefix: VendorPrefix;
} | {
  type: "grid";
} | {
  type: "ruby";
};
/**
 * A [`<display-outside>`](https://drafts.csswg.org/css-display-3/#typedef-display-outside) value.
 */
type DisplayOutside = "block" | "inline" | "run-in";
/**
 * A value for the [visibility](https://drafts.csswg.org/css-display-3/#visibility) property.
 */
type Visibility = "visible" | "hidden" | "collapse";
/**
 * A value for the [preferred size properties](https://drafts.csswg.org/css-sizing-3/#preferred-size-properties), i.e. `width` and `height.
 */
type Size = {
  type: "auto";
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "min-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "max-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "fit-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "fit-content-function";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "stretch";
  vendorPrefix: VendorPrefix;
} | {
  type: "contain";
};
/**
 * A value for the [minimum](https://drafts.csswg.org/css-sizing-3/#min-size-properties) and [maximum](https://drafts.csswg.org/css-sizing-3/#max-size-properties) size properties, e.g. `min-width` and `max-height`.
 */
type MaxSize = {
  type: "none";
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "min-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "max-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "fit-content";
  vendorPrefix: VendorPrefix;
} | {
  type: "fit-content-function";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "stretch";
  vendorPrefix: VendorPrefix;
} | {
  type: "contain";
};
/**
 * A value for the [box-sizing](https://drafts.csswg.org/css-sizing-3/#box-sizing) property.
 */
type BoxSizing = "content-box" | "border-box";
/**
 * An [overflow](https://www.w3.org/TR/css-overflow-3/#overflow-properties) keyword as used in the `overflow-x`, `overflow-y`, and `overflow` properties.
 */
type OverflowKeyword = "visible" | "hidden" | "clip" | "scroll" | "auto";
/**
 * A value for the [text-overflow](https://www.w3.org/TR/css-overflow-3/#text-overflow) property.
 */
type TextOverflow = "clip" | "ellipsis";
/**
 * A value for the [position](https://www.w3.org/TR/css-position-3/#position-property) property.
 */
type Position2 = {
  type: "static";
} | {
  type: "relative";
} | {
  type: "absolute";
} | {
  type: "sticky";
  value: VendorPrefix;
} | {
  type: "fixed";
};
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_Length = [Length, Length];
/**
 * A [`<line-style>`](https://drafts.csswg.org/css-backgrounds/#typedef-line-style) value, used in the `border-style` property.
 */
type LineStyle = "none" | "hidden" | "inset" | "groove" | "outset" | "ridge" | "dotted" | "dashed" | "solid" | "double";
/**
 * A value for the [border-width](https://www.w3.org/TR/css-backgrounds-3/#border-width) property.
 */
type BorderSideWidth = {
  type: "thin";
} | {
  type: "medium";
} | {
  type: "thick";
} | {
  type: "length";
  value: Length;
};
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_DimensionPercentageFor_LengthValue = [DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue];
/**
 * A generic value that represents a value for four sides of a box, e.g. border-width, margin, padding, etc.
 *
 * When serialized, as few components as possible are written when there are duplicate values.
 *
 * @minItems 4
 * @maxItems 4
 */
type RectFor_LengthOrNumber = [LengthOrNumber, LengthOrNumber, LengthOrNumber, LengthOrNumber];
/**
 * Either a [`<length>`](https://www.w3.org/TR/css-values-4/#lengths) or a [`<number>`](https://www.w3.org/TR/css-values-4/#numbers).
 */
type LengthOrNumber = {
  type: "number";
  value: number;
} | {
  type: "length";
  value: Length;
};
/**
 * A single [border-image-repeat](https://www.w3.org/TR/css-backgrounds-3/#border-image-repeat) keyword.
 */
type BorderImageRepeatKeyword = "stretch" | "repeat" | "round" | "space";
/**
 * A generic value that represents a value for four sides of a box, e.g. border-width, margin, padding, etc.
 *
 * When serialized, as few components as possible are written when there are duplicate values.
 *
 * @minItems 4
 * @maxItems 4
 */
type RectFor_BorderImageSideWidth = [BorderImageSideWidth, BorderImageSideWidth, BorderImageSideWidth, BorderImageSideWidth];
/**
 * A value for the [border-image-width](https://www.w3.org/TR/css-backgrounds-3/#border-image-width) property.
 */
type BorderImageSideWidth = {
  type: "number";
  value: number;
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "auto";
};
/**
 * A generic value that represents a value for four sides of a box, e.g. border-width, margin, padding, etc.
 *
 * When serialized, as few components as possible are written when there are duplicate values.
 *
 * @minItems 4
 * @maxItems 4
 */
type RectFor_NumberOrPercentage = [NumberOrPercentage, NumberOrPercentage, NumberOrPercentage, NumberOrPercentage];
/**
 * A value for the [outline-style](https://drafts.csswg.org/css-ui/#outline-style) property.
 */
type OutlineStyle = {
  type: "auto";
} | {
  type: "line-style";
  value: LineStyle;
};
/**
 * A value for the [flex-direction](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/#propdef-flex-direction) property.
 */
type FlexDirection = "row" | "row-reverse" | "column" | "column-reverse";
/**
 * A value for the [flex-wrap](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/#flex-wrap-property) property.
 */
type FlexWrap = "nowrap" | "wrap" | "wrap-reverse";
/**
 * A value for the [align-content](https://www.w3.org/TR/css-align-3/#propdef-align-content) property.
 */
type AlignContent = {
  type: "normal";
} | {
  type: "baseline-position";
  value: BaselinePosition;
} | {
  type: "content-distribution";
  value: ContentDistribution;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "content-position";
  /**
   * A content position keyword.
   */
  value: ContentPosition;
};
/**
 * A [`<baseline-position>`](https://www.w3.org/TR/css-align-3/#typedef-baseline-position) value, as used in the alignment properties.
 */
type BaselinePosition = "first" | "last";
/**
 * A [`<content-distribution>`](https://www.w3.org/TR/css-align-3/#typedef-content-distribution) value.
 */
type ContentDistribution = "space-between" | "space-around" | "space-evenly" | "stretch";
/**
 * An [`<overflow-position>`](https://www.w3.org/TR/css-align-3/#typedef-overflow-position) value.
 */
type OverflowPosition = "safe" | "unsafe";
/**
 * A [`<content-position>`](https://www.w3.org/TR/css-align-3/#typedef-content-position) value.
 */
type ContentPosition = "center" | "start" | "end" | "flex-start" | "flex-end";
/**
 * A value for the [justify-content](https://www.w3.org/TR/css-align-3/#propdef-justify-content) property.
 */
type JustifyContent = {
  type: "normal";
} | {
  type: "content-distribution";
  value: ContentDistribution;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "content-position";
  /**
   * A content position keyword.
   */
  value: ContentPosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "left";
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "right";
};
/**
 * A value for the [align-self](https://www.w3.org/TR/css-align-3/#align-self-property) property.
 */
type AlignSelf = {
  type: "auto";
} | {
  type: "normal";
} | {
  type: "stretch";
} | {
  type: "baseline-position";
  value: BaselinePosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "self-position";
  /**
   * A self position keyword.
   */
  value: SelfPosition;
};
/**
 * A [`<self-position>`](https://www.w3.org/TR/css-align-3/#typedef-self-position) value.
 */
type SelfPosition = "center" | "start" | "end" | "self-start" | "self-end" | "flex-start" | "flex-end";
/**
 * A value for the [justify-self](https://www.w3.org/TR/css-align-3/#justify-self-property) property.
 */
type JustifySelf = {
  type: "auto";
} | {
  type: "normal";
} | {
  type: "stretch";
} | {
  type: "baseline-position";
  value: BaselinePosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "self-position";
  /**
   * A self position keyword.
   */
  value: SelfPosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "left";
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "right";
};
/**
 * A value for the [align-items](https://www.w3.org/TR/css-align-3/#align-items-property) property.
 */
type AlignItems = {
  type: "normal";
} | {
  type: "stretch";
} | {
  type: "baseline-position";
  value: BaselinePosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "self-position";
  /**
   * A self position keyword.
   */
  value: SelfPosition;
};
/**
 * A value for the [justify-items](https://www.w3.org/TR/css-align-3/#justify-items-property) property.
 */
type JustifyItems = {
  type: "normal";
} | {
  type: "stretch";
} | {
  type: "baseline-position";
  value: BaselinePosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "self-position";
  /**
   * A self position keyword.
   */
  value: SelfPosition;
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "left";
} | {
  /**
   * An overflow alignment mode.
   */
  overflow?: OverflowPosition | null;
  type: "right";
} | {
  type: "legacy";
  value: LegacyJustify;
};
/**
 * A legacy justification keyword, as used in the `justify-items` property.
 */
type LegacyJustify = "left" | "right" | "center";
/**
 * A [gap](https://www.w3.org/TR/css-align-3/#column-row-gap) value, as used in the `column-gap` and `row-gap` properties.
 */
type GapValue = {
  type: "normal";
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A value for the legacy (prefixed) [box-orient](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#orientation) property. Partially equivalent to `flex-direction` in the standard syntax.
 */
type BoxOrient = "horizontal" | "vertical" | "inline-axis" | "block-axis";
/**
 * A value for the legacy (prefixed) [box-direction](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#displayorder) property. Partially equivalent to the `flex-direction` property in the standard syntax.
 */
type BoxDirection = "normal" | "reverse";
/**
 * A value for the legacy (prefixed) [box-align](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#alignment) property. Equivalent to the `align-items` property in the standard syntax.
 */
type BoxAlign = "start" | "end" | "center" | "baseline" | "stretch";
/**
 * A value for the legacy (prefixed) [box-pack](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#packing) property. Equivalent to the `justify-content` property in the standard syntax.
 */
type BoxPack = "start" | "end" | "center" | "justify";
/**
 * A value for the legacy (prefixed) [box-lines](https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#multiple) property. Equivalent to the `flex-wrap` property in the standard syntax.
 */
type BoxLines = "single" | "multiple";
/**
 * A value for the legacy (prefixed) [flex-pack](https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack) property. Equivalent to the `justify-content` property in the standard syntax.
 */
type FlexPack = "start" | "end" | "center" | "justify" | "distribute";
/**
 * A value for the legacy (prefixed) [flex-item-align](https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align) property. Equivalent to the `align-self` property in the standard syntax.
 */
type FlexItemAlign = "auto" | "start" | "end" | "center" | "baseline" | "stretch";
/**
 * A value for the legacy (prefixed) [flex-line-pack](https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack) property. Equivalent to the `align-content` property in the standard syntax.
 */
type FlexLinePack = "start" | "end" | "center" | "justify" | "distribute" | "stretch";
/**
 * A [track sizing](https://drafts.csswg.org/css-grid-2/#track-sizing) value for the `grid-template-rows` and `grid-template-columns` properties.
 */
type TrackSizing = {
  type: "none";
} | {
  /**
   * A list of grid track items.
   */
  items: TrackListItem[];
  /**
   * A list of line names.
   */
  lineNames: String[][];
  type: "track-list";
};
/**
 * Either a track size or `repeat()` function.
 *
 * See [TrackList](TrackList).
 */
type TrackListItem = {
  type: "track-size";
  value: TrackSize;
} | {
  type: "track-repeat";
  value: TrackRepeat;
};
/**
 * A [`<track-size>`](https://drafts.csswg.org/css-grid-2/#typedef-track-size) value, as used in the `grid-template-rows` and `grid-template-columns` properties.
 *
 * See [TrackListItem](TrackListItem).
 */
type TrackSize = {
  type: "track-breadth";
  value: TrackBreadth;
} | {
  /**
   * The maximum value.
   */
  max: TrackBreadth;
  /**
   * The minimum value.
   */
  min: TrackBreadth;
  type: "min-max";
} | {
  type: "fit-content";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A [`<track-breadth>`](https://drafts.csswg.org/css-grid-2/#typedef-track-breadth) value.
 *
 * See [TrackSize](TrackSize).
 */
type TrackBreadth = {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "flex";
  value: number;
} | {
  type: "min-content";
} | {
  type: "max-content";
} | {
  type: "auto";
};
/**
 * A [`<repeat-count>`](https://drafts.csswg.org/css-grid-2/#typedef-track-repeat) value, used in the `repeat()` function.
 *
 * See [TrackRepeat](TrackRepeat).
 */
type RepeatCount = {
  type: "number";
  value: number;
} | {
  type: "auto-fill";
} | {
  type: "auto-fit";
};
type AutoFlowDirection = "row" | "column";
/**
 * A value for the [grid-template-areas](https://drafts.csswg.org/css-grid-2/#grid-template-areas-property) property. none | <string>+
 */
type GridTemplateAreas = {
  type: "none";
} | {
  /**
   * A flattened list of grid area names. Unnamed areas specified by the `.` token are represented as `None`.
   */
  areas: (string | null)[];
  /**
   * The number of columns in the grid.
   */
  columns: number;
  type: "areas";
};
/**
 * A [`<grid-line>`](https://drafts.csswg.org/css-grid-2/#typedef-grid-row-start-grid-line) value, used in the `grid-row-start`, `grid-row-end`, `grid-column-start`, and `grid-column-end` properties.
 */
type GridLine = {
  type: "auto";
} | {
  /**
   * A grid area name.
   */
  name: String;
  type: "area";
} | {
  /**
   * A line number.
   */
  index: number;
  /**
   * A line name to filter by.
   */
  name?: String | null;
  type: "line";
} | {
  /**
   * A line number.
   */
  index: number;
  /**
   * A line name to filter by.
   */
  name?: String | null;
  type: "span";
};
/**
 * A value for the [font-weight](https://www.w3.org/TR/css-fonts-4/#font-weight-prop) property.
 */
type FontWeight = {
  type: "absolute";
  value: AbsoluteFontWeight;
} | {
  type: "bolder";
} | {
  type: "lighter";
};
/**
 * An [absolute font weight](https://www.w3.org/TR/css-fonts-4/#font-weight-absolute-values), as used in the `font-weight` property.
 *
 * See [FontWeight](FontWeight).
 */
type AbsoluteFontWeight = {
  type: "weight";
  value: number;
} | {
  type: "normal";
} | {
  type: "bold";
};
/**
 * A value for the [font-size](https://www.w3.org/TR/css-fonts-4/#font-size-prop) property.
 */
type FontSize = {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "absolute";
  value: AbsoluteFontSize;
} | {
  type: "relative";
  value: RelativeFontSize;
};
/**
 * An [absolute font size](https://www.w3.org/TR/css-fonts-3/#absolute-size-value), as used in the `font-size` property.
 *
 * See [FontSize](FontSize).
 */
type AbsoluteFontSize = "xx-small" | "x-small" | "small" | "medium" | "large" | "x-large" | "xx-large" | "xxx-large";
/**
 * A [relative font size](https://www.w3.org/TR/css-fonts-3/#relative-size-value), as used in the `font-size` property.
 *
 * See [FontSize](FontSize).
 */
type RelativeFontSize = "smaller" | "larger";
/**
 * A value for the [font-stretch](https://www.w3.org/TR/css-fonts-4/#font-stretch-prop) property.
 */
type FontStretch = {
  type: "keyword";
  value: FontStretchKeyword;
} | {
  type: "percentage";
  value: number;
};
/**
 * A [font stretch keyword](https://www.w3.org/TR/css-fonts-4/#font-stretch-prop), as used in the `font-stretch` property.
 *
 * See [FontStretch](FontStretch).
 */
type FontStretchKeyword = "normal" | "ultra-condensed" | "extra-condensed" | "condensed" | "semi-condensed" | "semi-expanded" | "expanded" | "extra-expanded" | "ultra-expanded";
/**
 * A value for the [font-family](https://www.w3.org/TR/css-fonts-4/#font-family-prop) property.
 */
type FontFamily = GenericFontFamily | String;
/**
 * A [generic font family](https://www.w3.org/TR/css-fonts-4/#generic-font-families) name, as used in the `font-family` property.
 *
 * See [FontFamily](FontFamily).
 */
type GenericFontFamily = "serif" | "sans-serif" | "cursive" | "fantasy" | "monospace" | "system-ui" | "emoji" | "math" | "fangsong" | "ui-serif" | "ui-sans-serif" | "ui-monospace" | "ui-rounded" | "initial" | "inherit" | "unset" | "default" | "revert" | "revert-layer";
/**
 * A value for the [font-style](https://www.w3.org/TR/css-fonts-4/#font-style-prop) property.
 */
type FontStyle = {
  type: "normal";
} | {
  type: "italic";
} | {
  type: "oblique";
  value: Angle;
};
/**
 * A value for the [font-variant-caps](https://www.w3.org/TR/css-fonts-4/#font-variant-caps-prop) property.
 */
type FontVariantCaps = "normal" | "small-caps" | "all-small-caps" | "petite-caps" | "all-petite-caps" | "unicase" | "titling-caps";
/**
 * A value for the [line-height](https://www.w3.org/TR/2020/WD-css-inline-3-20200827/#propdef-line-height) property.
 */
type LineHeight = {
  type: "normal";
} | {
  type: "number";
  value: number;
} | {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A value for the [vertical align](https://drafts.csswg.org/css2/#propdef-vertical-align) property.
 */
type VerticalAlign = {
  type: "keyword";
  value: VerticalAlignKeyword;
} | {
  type: "length";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A keyword for the [vertical align](https://drafts.csswg.org/css2/#propdef-vertical-align) property.
 */
type VerticalAlignKeyword = "baseline" | "sub" | "super" | "top" | "text-top" | "middle" | "bottom" | "text-bottom";
/**
 * A CSS [easing function](https://www.w3.org/TR/css-easing-1/#easing-functions).
 */
type EasingFunction = {
  type: "linear";
} | {
  type: "ease";
} | {
  type: "ease-in";
} | {
  type: "ease-out";
} | {
  type: "ease-in-out";
} | {
  type: "cubic-bezier";
  /**
   * The x-position of the first point in the curve.
   */
  x1: number;
  /**
   * The x-position of the second point in the curve.
   */
  x2: number;
  /**
   * The y-position of the first point in the curve.
   */
  y1: number;
  /**
   * The y-position of the second point in the curve.
   */
  y2: number;
} | {
  /**
   * The number of intervals in the function.
   */
  count: number;
  /**
   * The step position.
   */
  position?: StepPosition;
  type: "steps";
};
/**
 * A [step position](https://www.w3.org/TR/css-easing-1/#step-position), used within the `steps()` function.
 */
type StepPosition = {
  type: "start";
} | {
  type: "end";
} | {
  type: "jump-none";
} | {
  type: "jump-both";
};
/**
 * A value for the [animation-iteration-count](https://drafts.csswg.org/css-animations/#animation-iteration-count) property.
 */
type AnimationIterationCount = {
  type: "number";
  value: number;
} | {
  type: "infinite";
};
/**
 * A value for the [animation-direction](https://drafts.csswg.org/css-animations/#animation-direction) property.
 */
type AnimationDirection = "normal" | "reverse" | "alternate" | "alternate-reverse";
/**
 * A value for the [animation-play-state](https://drafts.csswg.org/css-animations/#animation-play-state) property.
 */
type AnimationPlayState = "running" | "paused";
/**
 * A value for the [animation-fill-mode](https://drafts.csswg.org/css-animations/#animation-fill-mode) property.
 */
type AnimationFillMode = "none" | "forwards" | "backwards" | "both";
/**
 * A value for the [animation-composition](https://drafts.csswg.org/css-animations-2/#animation-composition) property.
 */
type AnimationComposition = "replace" | "add" | "accumulate";
/**
 * A value for the [animation-timeline](https://drafts.csswg.org/css-animations-2/#animation-timeline) property.
 */
type AnimationTimeline = {
  type: "auto";
} | {
  type: "none";
} | {
  type: "dashed-ident";
  value: String;
} | {
  type: "scroll";
  value: ScrollTimeline;
} | {
  type: "view";
  value: ViewTimeline;
};
/**
 * A scroll axis, used in the `scroll()` function.
 */
type ScrollAxis = "block" | "inline" | "x" | "y";
/**
 * A scroller, used in the `scroll()` function.
 */
type Scroller = "root" | "nearest" | "self";
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_LengthPercentageOrAuto = [LengthPercentageOrAuto, LengthPercentageOrAuto];
/**
 * A value for the [animation-range-start](https://drafts.csswg.org/scroll-animations/#animation-range-start) property.
 */
type AnimationRangeStart = AnimationAttachmentRange;
/**
 * A value for the [animation-range-start](https://drafts.csswg.org/scroll-animations/#animation-range-start) or [animation-range-end](https://drafts.csswg.org/scroll-animations/#animation-range-end) property.
 */
type AnimationAttachmentRange = "normal" | DimensionPercentageFor_LengthValue | {
  /**
   * The name of the timeline range.
   */
  name: TimelineRangeName;
  /**
   * The offset from the start of the named timeline range.
   */
  offset: DimensionPercentageFor_LengthValue;
};
/**
 * A [view progress timeline range](https://drafts.csswg.org/scroll-animations/#view-timelines-ranges)
 */
type TimelineRangeName = "cover" | "contain" | "entry" | "exit" | "entry-crossing" | "exit-crossing";
/**
 * A value for the [animation-range-end](https://drafts.csswg.org/scroll-animations/#animation-range-end) property.
 */
type AnimationRangeEnd = AnimationAttachmentRange;
/**
 * An individual [transform function](https://www.w3.org/TR/2019/CR-css-transforms-1-20190214/#two-d-transform-functions).
 */
type Transform = {
  type: "translate";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue];
} | {
  type: "translateX";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "translateY";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "translateZ";
  value: Length;
} | {
  type: "translate3d";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue, Length];
} | {
  type: "scale";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [NumberOrPercentage, NumberOrPercentage];
} | {
  type: "scaleX";
  value: NumberOrPercentage;
} | {
  type: "scaleY";
  value: NumberOrPercentage;
} | {
  type: "scaleZ";
  value: NumberOrPercentage;
} | {
  type: "scale3d";
  /**
   * @minItems 3
   * @maxItems 3
   */
  value: [NumberOrPercentage, NumberOrPercentage, NumberOrPercentage];
} | {
  type: "rotate";
  value: Angle;
} | {
  type: "rotateX";
  value: Angle;
} | {
  type: "rotateY";
  value: Angle;
} | {
  type: "rotateZ";
  value: Angle;
} | {
  type: "rotate3d";
  /**
   * @minItems 4
   * @maxItems 4
   */
  value: [number, number, number, Angle];
} | {
  type: "skew";
  /**
   * @minItems 2
   * @maxItems 2
   */
  value: [Angle, Angle];
} | {
  type: "skewX";
  value: Angle;
} | {
  type: "skewY";
  value: Angle;
} | {
  type: "perspective";
  value: Length;
} | {
  type: "matrix";
  value: MatrixForFloat;
} | {
  type: "matrix3d";
  value: Matrix3DForFloat;
};
/**
 * A value for the [transform-style](https://drafts.csswg.org/css-transforms-2/#transform-style-property) property.
 */
type TransformStyle = "flat" | "preserve3d";
/**
 * A value for the [transform-box](https://drafts.csswg.org/css-transforms-1/#transform-box) property.
 */
type TransformBox = "content-box" | "border-box" | "fill-box" | "stroke-box" | "view-box";
/**
 * A value for the [backface-visibility](https://drafts.csswg.org/css-transforms-2/#backface-visibility-property) property.
 */
type BackfaceVisibility = "visible" | "hidden";
/**
 * A value for the [perspective](https://drafts.csswg.org/css-transforms-2/#perspective-property) property.
 */
type Perspective = {
  type: "none";
} | {
  type: "length";
  value: Length;
};
/**
 * A value for the [translate](https://drafts.csswg.org/css-transforms-2/#propdef-translate) property.
 */
type Translate = "none" | {
  /**
   * The x translation.
   */
  x: DimensionPercentageFor_LengthValue;
  /**
   * The y translation.
   */
  y: DimensionPercentageFor_LengthValue;
  /**
   * The z translation.
   */
  z: Length;
};
/**
 * A value for the [scale](https://drafts.csswg.org/css-transforms-2/#propdef-scale) property.
 */
type Scale = "none" | {
  /**
   * Scale on the x axis.
   */
  x: NumberOrPercentage;
  /**
   * Scale on the y axis.
   */
  y: NumberOrPercentage;
  /**
   * Scale on the z axis.
   */
  z: NumberOrPercentage;
};
/**
 * Defines how text case should be transformed in the [text-transform](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-transform-property) property.
 */
type TextTransformCase = "none" | "uppercase" | "lowercase" | "capitalize";
/**
 * A value for the [white-space](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#white-space-property) property.
 */
type WhiteSpace = "normal" | "pre" | "nowrap" | "pre-wrap" | "break-spaces" | "pre-line";
/**
 * A value for the [word-break](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#word-break-property) property.
 */
type WordBreak = "normal" | "keep-all" | "break-all" | "break-word";
/**
 * A value for the [line-break](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#line-break-property) property.
 */
type LineBreak = "auto" | "loose" | "normal" | "strict" | "anywhere";
/**
 * A value for the [hyphens](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#hyphenation) property.
 */
type Hyphens = "none" | "manual" | "auto";
/**
 * A value for the [overflow-wrap](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#overflow-wrap-property) property.
 */
type OverflowWrap = "normal" | "anywhere" | "break-word";
/**
 * A value for the [text-align](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-align-property) property.
 */
type TextAlign = "start" | "end" | "left" | "right" | "center" | "justify" | "match-parent" | "justify-all";
/**
 * A value for the [text-align-last](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-align-last-property) property.
 */
type TextAlignLast = "auto" | "start" | "end" | "left" | "right" | "center" | "justify" | "match-parent";
/**
 * A value for the [text-justify](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-justify-property) property.
 */
type TextJustify = "auto" | "none" | "inter-word" | "inter-character";
/**
 * A value for the [word-spacing](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#word-spacing-property) and [letter-spacing](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#letter-spacing-property) properties.
 */
type Spacing = {
  type: "normal";
} | {
  type: "length";
  value: Length;
};
type TextDecorationLine = ExclusiveTextDecorationLine | OtherTextDecorationLine[];
type ExclusiveTextDecorationLine = "none" | "spelling-error" | "grammar-error";
type OtherTextDecorationLine = "underline" | "overline" | "line-through" | "blink";
/**
 * A value for the [text-decoration-style](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-decoration-style-property) property.
 */
type TextDecorationStyle = "solid" | "double" | "dotted" | "dashed" | "wavy";
/**
 * A value for the [text-decoration-thickness](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-decoration-width-property) property.
 */
type TextDecorationThickness = {
  type: "auto";
} | {
  type: "from-font";
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
};
/**
 * A value for the [text-decoration-skip-ink](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-decoration-skip-ink-property) property.
 */
type TextDecorationSkipInk = "auto" | "none" | "all";
/**
 * A value for the [text-emphasis-style](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-style-property) property.
 */
type TextEmphasisStyle = {
  type: "none";
} | {
  /**
   * The fill mode for the marks.
   */
  fill: TextEmphasisFillMode;
  /**
   * The shape of the marks.
   */
  shape?: TextEmphasisShape | null;
  type: "keyword";
} | {
  type: "string";
  value: String;
};
/**
 * A keyword for the [text-emphasis-style](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-style-property) property.
 *
 * See [TextEmphasisStyle](TextEmphasisStyle).
 */
type TextEmphasisFillMode = "filled" | "open";
/**
 * A text emphasis shape for the [text-emphasis-style](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-style-property) property.
 *
 * See [TextEmphasisStyle](TextEmphasisStyle).
 */
type TextEmphasisShape = "dot" | "circle" | "double-circle" | "triangle" | "sesame";
/**
 * A horizontal position keyword for the [text-emphasis-position](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-position-property) property.
 *
 * See [TextEmphasisPosition](TextEmphasisPosition).
 */
type TextEmphasisPositionHorizontal = "left" | "right";
/**
 * A vertical position keyword for the [text-emphasis-position](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-position-property) property.
 *
 * See [TextEmphasisPosition](TextEmphasisPosition).
 */
type TextEmphasisPositionVertical = "over" | "under";
/**
 * A value for the [text-size-adjust](https://w3c.github.io/csswg-drafts/css-size-adjust/#adjustment-control) property.
 */
type TextSizeAdjust = {
  type: "auto";
} | {
  type: "none";
} | {
  type: "percentage";
  value: number;
};
/**
 * A value for the [direction](https://drafts.csswg.org/css-writing-modes-3/#direction) property.
 */
type Direction2 = "ltr" | "rtl";
/**
 * A value for the [unicode-bidi](https://drafts.csswg.org/css-writing-modes-3/#unicode-bidi) property.
 */
type UnicodeBidi = "normal" | "embed" | "isolate" | "bidi-override" | "isolate-override" | "plaintext";
/**
 * A value for the [box-decoration-break](https://www.w3.org/TR/css-break-3/#break-decoration) property.
 */
type BoxDecorationBreak = "slice" | "clone";
/**
 * A value for the [resize](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#resize) property.
 */
type Resize = "none" | "both" | "horizontal" | "vertical" | "block" | "inline";
/**
 * A pre-defined [cursor](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#cursor) value, used in the `cursor` property.
 *
 * See [Cursor](Cursor).
 */
type CursorKeyword = "auto" | "default" | "none" | "context-menu" | "help" | "pointer" | "progress" | "wait" | "cell" | "crosshair" | "text" | "vertical-text" | "alias" | "copy" | "move" | "no-drop" | "not-allowed" | "grab" | "grabbing" | "e-resize" | "n-resize" | "ne-resize" | "nw-resize" | "s-resize" | "se-resize" | "sw-resize" | "w-resize" | "ew-resize" | "ns-resize" | "nesw-resize" | "nwse-resize" | "col-resize" | "row-resize" | "all-scroll" | "zoom-in" | "zoom-out";
/**
 * A value for the [caret-color](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#caret-color) property.
 */
type ColorOrAuto = {
  type: "auto";
} | {
  type: "color";
  value: CssColor;
};
/**
 * A value for the [caret-shape](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#caret-shape) property.
 */
type CaretShape = "auto" | "bar" | "block" | "underscore";
/**
 * A value for the [user-select](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#content-selection) property.
 */
type UserSelect = "auto" | "text" | "none" | "contain" | "all";
type Appearance = string;
/**
 * A value for the [list-style-type](https://www.w3.org/TR/2020/WD-css-lists-3-20201117/#text-markers) property.
 */
type ListStyleType = {
  type: "none";
} | {
  type: "string";
  value: String;
} | {
  type: "counter-style";
  value: CounterStyle;
};
/**
 * A [counter-style](https://www.w3.org/TR/css-counter-styles-3/#typedef-counter-style) name.
 */
type CounterStyle = {
  type: "predefined";
  value: PredefinedCounterStyle;
} | {
  type: "name";
  value: String;
} | {
  /**
   * The symbols.
   */
  symbols: Symbol[];
  /**
   * The counter system.
   */
  system?: SymbolsType & string;
  type: "symbols";
};
/**
 * A [predefined counter](https://www.w3.org/TR/css-counter-styles-3/#predefined-counters) style.
 */
type PredefinedCounterStyle = "decimal" | "decimal-leading-zero" | "arabic-indic" | "armenian" | "upper-armenian" | "lower-armenian" | "bengali" | "cambodian" | "khmer" | "cjk-decimal" | "devanagari" | "georgian" | "gujarati" | "gurmukhi" | "hebrew" | "kannada" | "lao" | "malayalam" | "mongolian" | "myanmar" | "oriya" | "persian" | "lower-roman" | "upper-roman" | "tamil" | "telugu" | "thai" | "tibetan" | "lower-alpha" | "lower-latin" | "upper-alpha" | "upper-latin" | "lower-greek" | "hiragana" | "hiragana-iroha" | "katakana" | "katakana-iroha" | "disc" | "circle" | "square" | "disclosure-open" | "disclosure-closed" | "cjk-earthly-branch" | "cjk-heavenly-stem" | "japanese-informal" | "japanese-formal" | "korean-hangul-formal" | "korean-hanja-informal" | "korean-hanja-formal" | "simp-chinese-informal" | "simp-chinese-formal" | "trad-chinese-informal" | "trad-chinese-formal" | "ethiopic-numeric";
/**
 * A single [symbol](https://www.w3.org/TR/css-counter-styles-3/#funcdef-symbols) as used in the `symbols()` function.
 *
 * See [CounterStyle](CounterStyle).
 */
type Symbol = {
  type: "string";
  value: String;
} | {
  type: "image";
  value: Image;
};
/**
 * A [`<symbols-type>`](https://www.w3.org/TR/css-counter-styles-3/#typedef-symbols-type) value, as used in the `symbols()` function.
 *
 * See [CounterStyle](CounterStyle).
 */
type SymbolsType = "cyclic" | "numeric" | "alphabetic" | "symbolic" | "fixed";
/**
 * A value for the [list-style-position](https://www.w3.org/TR/2020/WD-css-lists-3-20201117/#list-style-position-property) property.
 */
type ListStylePosition = "inside" | "outside";
/**
 * A value for the [marker-side](https://www.w3.org/TR/2020/WD-css-lists-3-20201117/#marker-side) property.
 */
type MarkerSide = "match-self" | "match-parent";
/**
 * An SVG [`<paint>`](https://www.w3.org/TR/SVG2/painting.html#SpecifyingPaint) value used in the `fill` and `stroke` properties.
 */
type SVGPaint = {
  /**
   * A fallback to be used used in case the paint server cannot be resolved.
   */
  fallback?: SVGPaintFallback | null;
  type: "url";
  /**
   * The url of the paint server.
   */
  url: Url;
} | {
  type: "color";
  value: CssColor;
} | {
  type: "context-fill";
} | {
  type: "context-stroke";
} | {
  type: "none";
};
/**
 * A fallback for an SVG paint in case a paint server `url()` cannot be resolved.
 *
 * See [SVGPaint](SVGPaint).
 */
type SVGPaintFallback = {
  type: "none";
} | {
  type: "color";
  value: CssColor;
};
/**
 * A [`<fill-rule>`](https://www.w3.org/TR/css-shapes-1/#typedef-fill-rule) used to determine the interior of a `polygon()` shape.
 *
 * See [Polygon](Polygon).
 */
type FillRule = "nonzero" | "evenodd";
/**
 * A value for the [stroke-linecap](https://www.w3.org/TR/SVG2/painting.html#LineCaps) property.
 */
type StrokeLinecap = "butt" | "round" | "square";
/**
 * A value for the [stroke-linejoin](https://www.w3.org/TR/SVG2/painting.html#LineJoin) property.
 */
type StrokeLinejoin = "miter" | "miter-clip" | "round" | "bevel" | "arcs";
/**
 * A value for the [stroke-dasharray](https://www.w3.org/TR/SVG2/painting.html#StrokeDashing) property.
 */
type StrokeDasharray = {
  type: "none";
} | {
  type: "values";
  value: DimensionPercentageFor_LengthValue[];
};
/**
 * A value for the [marker](https://www.w3.org/TR/SVG2/painting.html#VertexMarkerProperties) properties.
 */
type Marker = {
  type: "none";
} | {
  type: "url";
  value: Url;
};
/**
 * A value for the [color-interpolation](https://www.w3.org/TR/SVG2/painting.html#ColorInterpolation) property.
 */
type ColorInterpolation = "auto" | "srgb" | "linearrgb";
/**
 * A value for the [color-rendering](https://www.w3.org/TR/SVG2/painting.html#ColorRendering) property.
 */
type ColorRendering = "auto" | "optimizespeed" | "optimizequality";
/**
 * A value for the [shape-rendering](https://www.w3.org/TR/SVG2/painting.html#ShapeRendering) property.
 */
type ShapeRendering = "auto" | "optimizespeed" | "crispedges" | "geometricprecision";
/**
 * A value for the [text-rendering](https://www.w3.org/TR/SVG2/painting.html#TextRendering) property.
 */
type TextRendering = "auto" | "optimizespeed" | "optimizelegibility" | "geometricprecision";
/**
 * A value for the [image-rendering](https://www.w3.org/TR/SVG2/painting.html#ImageRendering) property.
 */
type ImageRendering = "auto" | "optimizespeed" | "optimizequality";
/**
 * A value for the [clip-path](https://www.w3.org/TR/css-masking-1/#the-clip-path) property.
 */
type ClipPath = {
  type: "none";
} | {
  type: "url";
  value: Url;
} | {
  /**
   * A reference box that the shape is positioned according to.
   */
  referenceBox: GeometryBox;
  /**
   * A basic shape.
   */
  shape: BasicShape;
  type: "shape";
} | {
  type: "box";
  value: GeometryBox;
};
/**
 * A [`<geometry-box>`](https://www.w3.org/TR/css-masking-1/#typedef-geometry-box) value as used in the `mask-clip` and `clip-path` properties.
 */
type GeometryBox = "border-box" | "padding-box" | "content-box" | "margin-box" | "fill-box" | "stroke-box" | "view-box";
/**
 * A CSS [`<basic-shape>`](https://www.w3.org/TR/css-shapes-1/#basic-shape-functions) value.
 */
type BasicShape = {
  type: "inset";
  value: InsetRect;
} | {
  type: "circle";
  value: Circle2;
} | {
  type: "ellipse";
  value: Ellipse2;
} | {
  type: "polygon";
  value: Polygon;
};
/**
 * A generic value that represents a value for four sides of a box, e.g. border-width, margin, padding, etc.
 *
 * When serialized, as few components as possible are written when there are duplicate values.
 *
 * @minItems 4
 * @maxItems 4
 */
type RectFor_DimensionPercentageFor_LengthValue = [DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue, DimensionPercentageFor_LengthValue];
/**
 * A [`<shape-radius>`](https://www.w3.org/TR/css-shapes-1/#typedef-shape-radius) value that defines the radius of a `circle()` or `ellipse()` shape.
 */
type ShapeRadius = {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "closest-side";
} | {
  type: "farthest-side";
};
/**
 * A value for the [mask-mode](https://www.w3.org/TR/css-masking-1/#the-mask-mode) property.
 */
type MaskMode = "luminance" | "alpha" | "match-source";
/**
 * A value for the [mask-clip](https://www.w3.org/TR/css-masking-1/#the-mask-clip) property.
 */
type MaskClip = {
  type: "geometry-box";
  value: GeometryBox;
} | {
  type: "no-clip";
};
/**
 * A value for the [mask-composite](https://www.w3.org/TR/css-masking-1/#the-mask-composite) property.
 */
type MaskComposite = "add" | "subtract" | "intersect" | "exclude";
/**
 * A value for the [mask-type](https://www.w3.org/TR/css-masking-1/#the-mask-type) property.
 */
type MaskType = "luminance" | "alpha";
/**
 * A value for the [mask-border-mode](https://www.w3.org/TR/css-masking-1/#the-mask-border-mode) property.
 */
type MaskBorderMode = "luminance" | "alpha";
/**
 * A value for the [-webkit-mask-composite](https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-composite) property.
 *
 * See also [MaskComposite](MaskComposite).
 */
type WebKitMaskComposite = ("clear" | "copy" | "source-atop" | "destination-over" | "destination-in" | "destination-out" | "destination-atop") | "source-over" | "source-in" | "source-out" | "xor";
/**
 * A value for the [-webkit-mask-source-type](https://github.com/WebKit/WebKit/blob/6eece09a1c31e47489811edd003d1e36910e9fd3/Source/WebCore/css/CSSProperties.json#L6578-L6587) property.
 *
 * See also [MaskMode](MaskMode).
 */
type WebKitMaskSourceType = "auto" | "luminance" | "alpha";
/**
 * A value for the [filter](https://drafts.fxtf.org/filter-effects-1/#FilterProperty) and [backdrop-filter](https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty) properties.
 */
type FilterList = {
  type: "none";
} | {
  type: "filters";
  value: Filter[];
};
/**
 * A [filter](https://drafts.fxtf.org/filter-effects-1/#filter-functions) function.
 */
type Filter = {
  type: "blur";
  value: Length;
} | {
  type: "brightness";
  value: NumberOrPercentage;
} | {
  type: "contrast";
  value: NumberOrPercentage;
} | {
  type: "grayscale";
  value: NumberOrPercentage;
} | {
  type: "hue-rotate";
  value: Angle;
} | {
  type: "invert";
  value: NumberOrPercentage;
} | {
  type: "opacity";
  value: NumberOrPercentage;
} | {
  type: "saturate";
  value: NumberOrPercentage;
} | {
  type: "sepia";
  value: NumberOrPercentage;
} | {
  type: "drop-shadow";
  value: DropShadow;
} | {
  type: "url";
  value: Url;
};
/**
 * A value for the [z-index](https://drafts.csswg.org/css2/#z-index) property.
 */
type ZIndex = {
  type: "auto";
} | {
  type: "integer";
  value: number;
};
/**
 * A value for the [container-type](https://drafts.csswg.org/css-contain-3/#container-type) property. Establishes the element as a query container for the purpose of container queries.
 */
type ContainerType = "normal" | "inline-size" | "size" | "scroll-state";
/**
 * A value for the [container-name](https://drafts.csswg.org/css-contain-3/#container-name) property.
 */
type ContainerNameList = {
  type: "none";
} | {
  type: "names";
  value: String[];
};
/**
 * A value for the [view-transition-name](https://drafts.csswg.org/css-view-transitions-1/#view-transition-name-prop) property.
 */
type ViewTransitionName = "none" | "auto" | String;
/**
 * The `none` keyword, or a space-separated list of custom idents.
 */
type NoneOrCustomIdentList = "none" | String[];
/**
 * A value for the [view-transition-group](https://drafts.csswg.org/css-view-transitions-2/#view-transition-group-prop) property.
 */
type ViewTransitionGroup = "normal" | "contain" | "nearest" | String;
/**
 * A value for the [print-color-adjust](https://drafts.csswg.org/css-color-adjust/#propdef-print-color-adjust) property.
 */
type PrintColorAdjust = "economy" | "exact";
/**
 * A [CSS-wide keyword](https://drafts.csswg.org/css-cascade-5/#defaulting-keywords).
 */
type CSSWideKeyword = "initial" | "inherit" | "unset" | "revert" | "revert-layer";
/**
 * A CSS custom property name.
 */
type CustomPropertyName = String | String;
type SelectorComponent = {
  type: "combinator";
  value: Combinator;
} | {
  type: "universal";
} | ({
  type: "namespace";
  kind: "none";
} | {
  type: "namespace";
  kind: "any";
} | {
  type: "namespace";
  kind: "named";
  prefix: string;
}) | {
  name: string;
  type: "type";
} | {
  name: string;
  type: "id";
} | {
  name: string;
  type: "class";
} | {
  name: string;
  namespace?: NamespaceConstraint | null;
  operation?: AttrOperation | null;
  type: "attribute";
} | ({
  type: "pseudo-class";
} & (TSPseudoClass | PseudoClass)) | ({
  type: "pseudo-element";
} & (BuiltinPseudoElement | PseudoElement)) | {
  type: "nesting";
};
type Combinator = ("child" | "descendant" | "next-sibling" | "later-sibling") | "pseudo-element" | "slot-assignment" | "part" | "deep-descendant" | "deep";
type NamespaceConstraint = {
  type: "any";
} | {
  prefix: string;
  type: "specific";
  url: string;
};
type ParsedCaseSensitivity = "explicit-case-sensitive" | "ascii-case-insensitive" | "case-sensitive" | "ascii-case-insensitive-if-in-html-element-in-html-document";
type AttrSelectorOperator = "equal" | "includes" | "dash-match" | "prefix" | "substring" | "suffix";
type TSPseudoClass = {
  kind: "not";
  selectors: Selector[];
} | {
  kind: "first-child";
} | {
  kind: "last-child";
} | {
  kind: "only-child";
} | {
  kind: "root";
} | {
  kind: "empty";
} | {
  kind: "scope";
} | {
  a: number;
  b: number;
  kind: "nth-child";
  of?: Selector[] | null;
} | {
  a: number;
  b: number;
  kind: "nth-last-child";
  of?: Selector[] | null;
} | {
  a: number;
  b: number;
  kind: "nth-col";
} | {
  a: number;
  b: number;
  kind: "nth-last-col";
} | {
  a: number;
  b: number;
  kind: "nth-of-type";
} | {
  a: number;
  b: number;
  kind: "nth-last-of-type";
} | {
  kind: "first-of-type";
} | {
  kind: "last-of-type";
} | {
  kind: "only-of-type";
} | {
  kind: "host";
  selectors?: Selector | null;
} | {
  kind: "where";
  selectors: Selector[];
} | {
  kind: "is";
  selectors: Selector[];
} | {
  kind: "any";
  selectors: Selector[];
  vendorPrefix: VendorPrefix;
} | {
  kind: "has";
  selectors: Selector[];
};
/**
 * A pseudo class.
 */
type PseudoClass = {
  kind: "lang";
  /**
   * A list of language codes.
   */
  languages: String[];
} | {
  /**
   * A direction.
   */
  direction: Direction;
  kind: "dir";
} | {
  kind: "hover";
} | {
  kind: "active";
} | {
  kind: "focus";
} | {
  kind: "focus-visible";
} | {
  kind: "focus-within";
} | {
  kind: "current";
} | {
  kind: "past";
} | {
  kind: "future";
} | {
  kind: "playing";
} | {
  kind: "paused";
} | {
  kind: "seeking";
} | {
  kind: "buffering";
} | {
  kind: "stalled";
} | {
  kind: "muted";
} | {
  kind: "volume-locked";
} | {
  kind: "fullscreen";
  vendorPrefix: VendorPrefix;
} | {
  kind: "open";
} | {
  kind: "closed";
} | {
  kind: "modal";
} | {
  kind: "picture-in-picture";
} | {
  kind: "popover-open";
} | {
  kind: "defined";
} | {
  kind: "any-link";
  vendorPrefix: VendorPrefix;
} | {
  kind: "link";
} | {
  kind: "local-link";
} | {
  kind: "target";
} | {
  kind: "target-within";
} | {
  kind: "visited";
} | {
  kind: "enabled";
} | {
  kind: "disabled";
} | {
  kind: "read-only";
  vendorPrefix: VendorPrefix;
} | {
  kind: "read-write";
  vendorPrefix: VendorPrefix;
} | {
  kind: "placeholder-shown";
  vendorPrefix: VendorPrefix;
} | {
  kind: "default";
} | {
  kind: "checked";
} | {
  kind: "indeterminate";
} | {
  kind: "blank";
} | {
  kind: "valid";
} | {
  kind: "invalid";
} | {
  kind: "in-range";
} | {
  kind: "out-of-range";
} | {
  kind: "required";
} | {
  kind: "optional";
} | {
  kind: "user-valid";
} | {
  kind: "user-invalid";
} | {
  kind: "autofill";
  vendorPrefix: VendorPrefix;
} | {
  kind: "active-view-transition";
} | {
  kind: "active-view-transition-type";
  /**
   * A view transition type.
   */
  type: String[];
} | {
  kind: "state";
  /**
   * The custom state identifier.
   */
  state: String;
} | {
  kind: "local";
  /**
   * A local selector.
   */
  selector: Selector;
} | {
  kind: "global";
  /**
   * A global selector.
   */
  selector: Selector;
} | {
  kind: "webkit-scrollbar";
  value: WebKitScrollbarPseudoClass;
} | {
  kind: "custom";
  /**
   * The pseudo class name.
   */
  name: String;
} | {
  /**
   * The arguments of the pseudo class function.
   */
  arguments: TokenOrValue[];
  kind: "custom-function";
  /**
   * The pseudo class name.
   */
  name: String;
};
/**
 * The [:dir()](https://drafts.csswg.org/selectors-4/#the-dir-pseudo) pseudo class.
 */
type Direction = "ltr" | "rtl";
/**
 * A [webkit scrollbar](https://webkit.org/blog/363/styling-scrollbars/) pseudo class.
 */
type WebKitScrollbarPseudoClass = "horizontal" | "vertical" | "decrement" | "increment" | "start" | "end" | "double-button" | "single-button" | "no-button" | "corner-present" | "window-inactive";
type BuiltinPseudoElement = {
  kind: "slotted";
  selector: Selector;
} | {
  kind: "part";
  names: string[];
};
/**
 * A pseudo element.
 */
type PseudoElement = {
  kind: "after";
} | {
  kind: "before";
} | {
  kind: "first-line";
} | {
  kind: "first-letter";
} | {
  kind: "details-content";
} | {
  kind: "target-text";
} | {
  kind: "selection";
  vendorPrefix: VendorPrefix;
} | {
  kind: "placeholder";
  vendorPrefix: VendorPrefix;
} | {
  kind: "marker";
} | {
  kind: "backdrop";
  vendorPrefix: VendorPrefix;
} | {
  kind: "file-selector-button";
  vendorPrefix: VendorPrefix;
} | {
  kind: "webkit-scrollbar";
  value: WebKitScrollbarPseudoElement;
} | {
  kind: "cue";
} | {
  kind: "cue-region";
} | {
  kind: "cue-function";
  /**
   * The selector argument.
   */
  selector: Selector;
} | {
  kind: "cue-region-function";
  /**
   * The selector argument.
   */
  selector: Selector;
} | {
  kind: "view-transition";
} | {
  kind: "view-transition-group";
  /**
   * A part name selector.
   */
  part: ViewTransitionPartSelector;
} | {
  kind: "view-transition-image-pair";
  /**
   * A part name selector.
   */
  part: ViewTransitionPartSelector;
} | {
  kind: "view-transition-old";
  /**
   * A part name selector.
   */
  part: ViewTransitionPartSelector;
} | {
  kind: "view-transition-new";
  /**
   * A part name selector.
   */
  part: ViewTransitionPartSelector;
} | {
  /**
   * A form control identifier.
   */
  identifier: String;
  kind: "picker-function";
} | {
  kind: "picker-icon";
} | {
  kind: "checkmark";
} | {
  kind: "grammar-error";
} | {
  kind: "spelling-error";
} | {
  kind: "custom";
  /**
   * The name of the pseudo element.
   */
  name: String;
} | {
  /**
   * The arguments of the pseudo element function.
   */
  arguments: TokenOrValue[];
  kind: "custom-function";
  /**
   * The name of the pseudo element.
   */
  name: String;
};
/**
 * A [webkit scrollbar](https://webkit.org/blog/363/styling-scrollbars/) pseudo element.
 */
type WebKitScrollbarPseudoElement = "scrollbar" | "button" | "track" | "track-piece" | "thumb" | "corner" | "resizer";
type ViewTransitionPartName = string;
type Selector = SelectorComponent[];
type SelectorList = Selector[];
/**
 * A [keyframe selector](https://drafts.csswg.org/css-animations/#typedef-keyframe-selector) within an `@keyframes` rule.
 */
type KeyframeSelector = {
  type: "percentage";
  value: number;
} | {
  type: "from";
} | {
  type: "to";
} | {
  type: "timeline-range-percentage";
  value: TimelineRangePercentage;
};
/**
 * KeyframesName
 */
type KeyframesName = {
  type: "ident";
  value: String;
} | {
  type: "custom";
  value: String;
};
/**
 * A property within an `@font-face` rule.
 *
 * See [FontFaceRule](FontFaceRule).
 */
type FontFaceProperty = {
  type: "source";
  value: Source[];
} | {
  type: "font-family";
  value: FontFamily;
} | {
  type: "font-style";
  value: FontStyle2;
} | {
  type: "font-weight";
  value: Size2DFor_FontWeight;
} | {
  type: "font-stretch";
  value: Size2DFor_FontStretch;
} | {
  type: "unicode-range";
  value: UnicodeRange[];
} | {
  type: "custom";
  value: CustomProperty;
};
/**
 * A value for the [src](https://drafts.csswg.org/css-fonts/#src-desc) property in an `@font-face` rule.
 */
type Source = {
  type: "url";
  value: UrlSource;
} | {
  type: "local";
  value: FontFamily;
};
/**
 * A font format keyword in the `format()` function of the the [src](https://drafts.csswg.org/css-fonts/#src-desc) property of an `@font-face` rule.
 */
type FontFormat = {
  type: "woff";
} | {
  type: "woff2";
} | {
  type: "truetype";
} | {
  type: "opentype";
} | {
  type: "embedded-opentype";
} | {
  type: "collection";
} | {
  type: "svg";
} | {
  type: "string";
  value: String;
};
/**
 * A font format keyword in the `format()` function of the the [src](https://drafts.csswg.org/css-fonts/#src-desc) property of an `@font-face` rule.
 */
type FontTechnology = "features-opentype" | "features-aat" | "features-graphite" | "color-colrv0" | "color-colrv1" | "color-svg" | "color-sbix" | "color-cbdt" | "variations" | "palettes" | "incremental";
/**
 * A value for the [font-style](https://w3c.github.io/csswg-drafts/css-fonts/#descdef-font-face-font-style) descriptor in an `@font-face` rule.
 */
type FontStyle2 = {
  type: "normal";
} | {
  type: "italic";
} | {
  type: "oblique";
  value: Size2DFor_Angle;
};
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_Angle = [Angle, Angle];
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_FontWeight = [FontWeight, FontWeight];
/**
 * A generic value that represents a value with two components, e.g. a border radius.
 *
 * When serialized, only a single component will be written if both are equal.
 *
 * @minItems 2
 * @maxItems 2
 */
type Size2DFor_FontStretch = [FontStretch, FontStretch];
/**
 * A property within an `@font-palette-values` rule.
 *
 * See [FontPaletteValuesRule](FontPaletteValuesRule).
 */
type FontPaletteValuesProperty = {
  type: "font-family";
  value: FontFamily;
} | {
  type: "base-palette";
  value: BasePalette;
} | {
  type: "override-colors";
  value: OverrideColors[];
} | {
  type: "custom";
  value: CustomProperty;
};
/**
 * A value for the [base-palette](https://drafts.csswg.org/css-fonts-4/#base-palette-desc) property in an `@font-palette-values` rule.
 */
type BasePalette = {
  type: "light";
} | {
  type: "dark";
} | {
  type: "integer";
  value: number;
};
/**
 * The name of the `@font-feature-values` sub-rule. font-feature-value-type = <@stylistic> | <@historical-forms> | <@styleset> | <@character-variant> | <@swash> | <@ornaments> | <@annotation>
 */
type FontFeatureSubruleType = "stylistic" | "historical-forms" | "styleset" | "character-variant" | "swash" | "ornaments" | "annotation";
/**
 * A [page margin box](https://www.w3.org/TR/css-page-3/#margin-boxes).
 */
type PageMarginBox = "top-left-corner" | "top-left" | "top-center" | "top-right" | "top-right-corner" | "left-top" | "left-middle" | "left-bottom" | "right-top" | "right-middle" | "right-bottom" | "bottom-left-corner" | "bottom-left" | "bottom-center" | "bottom-right" | "bottom-right-corner";
/**
 * A page pseudo class within an `@page` selector.
 *
 * See [PageSelector](PageSelector).
 */
type PagePseudoClass = "left" | "right" | "first" | "last" | "blank";
/**
 * A parsed value for a [SyntaxComponent](SyntaxComponent).
 */
type ParsedComponent = {
  type: "length";
  value: Length;
} | {
  type: "number";
  value: number;
} | {
  type: "percentage";
  value: number;
} | {
  type: "length-percentage";
  value: DimensionPercentageFor_LengthValue;
} | {
  type: "string";
  value: String;
} | {
  type: "color";
  value: CssColor;
} | {
  type: "image";
  value: Image;
} | {
  type: "url";
  value: Url;
} | {
  type: "integer";
  value: number;
} | {
  type: "angle";
  value: Angle;
} | {
  type: "time";
  value: Time;
} | {
  type: "resolution";
  value: Resolution;
} | {
  type: "transform-function";
  value: Transform;
} | {
  type: "transform-list";
  value: Transform[];
} | {
  type: "custom-ident";
  value: String;
} | {
  type: "literal";
  value: String;
} | {
  type: "repeated";
  value: {
    /**
     * The components to repeat.
     */
    components: ParsedComponent[];
    /**
     * A multiplier describing how the components repeat.
     */
    multiplier: Multiplier;
  };
} | {
  type: "token-list";
  value: TokenOrValue[];
};
/**
 * A [multiplier](https://drafts.css-houdini.org/css-properties-values-api/#multipliers) for a [SyntaxComponent](SyntaxComponent). Indicates whether and how the component may be repeated.
 */
type Multiplier = {
  type: "none";
} | {
  type: "space";
} | {
  type: "comma";
};
/**
 * A CSS [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-strings) used to define the grammar for a registered custom property.
 */
type SyntaxString$1 = {
  type: "components";
  value: SyntaxComponent[];
} | {
  type: "universal";
};
/**
 * A [syntax component component name](https://drafts.css-houdini.org/css-properties-values-api/#supported-names).
 */
type SyntaxComponentKind = {
  type: "length";
} | {
  type: "number";
} | {
  type: "percentage";
} | {
  type: "length-percentage";
} | {
  type: "string";
} | {
  type: "color";
} | {
  type: "image";
} | {
  type: "url";
} | {
  type: "integer";
} | {
  type: "angle";
} | {
  type: "time";
} | {
  type: "resolution";
} | {
  type: "transform-function";
} | {
  type: "transform-list";
} | {
  type: "custom-ident";
} | {
  type: "literal";
  value: string;
};
/**
 * Represents a container condition.
 */
type ContainerCondition<D = Declaration> = {
  type: "feature";
  value: QueryFeatureFor_ContainerSizeFeatureId;
} | {
  type: "not";
  value: ContainerCondition<D>;
} | {
  /**
   * The conditions for the operator.
   */
  conditions: ContainerCondition<D>[];
  /**
   * The operator for the conditions.
   */
  operator: Operator;
  type: "operation";
} | {
  type: "style";
  value: StyleQuery<D>;
} | {
  type: "scroll-state";
  value: ScrollStateQuery;
} | {
  type: "unknown";
  value: TokenOrValue[];
};
/**
 * A generic media feature or container feature.
 */
type QueryFeatureFor_ContainerSizeFeatureId = {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ContainerSizeFeatureId;
  type: "plain";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ContainerSizeFeatureId;
  type: "boolean";
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ContainerSizeFeatureId;
  /**
   * A comparator.
   */
  operator: MediaFeatureComparison;
  type: "range";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The end value.
   */
  end: MediaFeatureValue;
  /**
   * A comparator for the end value.
   */
  endOperator: MediaFeatureComparison;
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ContainerSizeFeatureId;
  /**
   * A start value.
   */
  start: MediaFeatureValue;
  /**
   * A comparator for the start value.
   */
  startOperator: MediaFeatureComparison;
  type: "interval";
};
/**
 * A media feature name.
 */
type MediaFeatureNameFor_ContainerSizeFeatureId = ContainerSizeFeatureId | String | String;
/**
 * A container query size feature identifier.
 */
type ContainerSizeFeatureId = "width" | "height" | "inline-size" | "block-size" | "aspect-ratio" | "orientation";
/**
 * Represents a style query within a container condition.
 */
type StyleQuery<D = Declaration> = {
  type: "declaration";
  value: D;
} | {
  type: "property";
  value: PropertyId;
} | {
  type: "not";
  value: StyleQuery<D>;
} | {
  /**
   * The conditions for the operator.
   */
  conditions: StyleQuery<D>[];
  /**
   * The operator for the conditions.
   */
  operator: Operator;
  type: "operation";
};
/**
 * Represents a scroll state query within a container condition.
 */
type ScrollStateQuery = {
  type: "feature";
  value: QueryFeatureFor_ScrollStateFeatureId;
} | {
  type: "not";
  value: ScrollStateQuery;
} | {
  /**
   * The conditions for the operator.
   */
  conditions: ScrollStateQuery[];
  /**
   * The operator for the conditions.
   */
  operator: Operator;
  type: "operation";
};
/**
 * A generic media feature or container feature.
 */
type QueryFeatureFor_ScrollStateFeatureId = {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ScrollStateFeatureId;
  type: "plain";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ScrollStateFeatureId;
  type: "boolean";
} | {
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ScrollStateFeatureId;
  /**
   * A comparator.
   */
  operator: MediaFeatureComparison;
  type: "range";
  /**
   * The feature value.
   */
  value: MediaFeatureValue;
} | {
  /**
   * The end value.
   */
  end: MediaFeatureValue;
  /**
   * A comparator for the end value.
   */
  endOperator: MediaFeatureComparison;
  /**
   * The name of the feature.
   */
  name: MediaFeatureNameFor_ScrollStateFeatureId;
  /**
   * A start value.
   */
  start: MediaFeatureValue;
  /**
   * A comparator for the start value.
   */
  startOperator: MediaFeatureComparison;
  type: "interval";
};
/**
 * A media feature name.
 */
type MediaFeatureNameFor_ScrollStateFeatureId = ScrollStateFeatureId | String | String;
/**
 * A container query scroll state feature identifier.
 */
type ScrollStateFeatureId = "stuck" | "snapped" | "scrollable" | "scrolled";
/**
 * A property within a `@view-transition` rule.
 *
 * See [ViewTransitionRule](ViewTransitionRule).
 */
type ViewTransitionProperty = {
  property: "navigation";
  value: Navigation;
} | {
  property: "types";
  value: NoneOrCustomIdentList;
} | {
  property: "custom";
  value: CustomProperty;
};
/**
 * A value for the [navigation](https://drafts.csswg.org/css-view-transitions-2/#view-transition-navigation-descriptor) property in a `@view-transition` rule.
 */
type Navigation = "none" | "auto";
type DefaultAtRule = null;
/**
 * A CSS style sheet, representing a `.css` file or inline `<style>` element.
 *
 * Style sheets can be parsed from a string, constructed from scratch, or created using a [Bundler](super::bundler::Bundler). Then, they can be minified and transformed for a set of target browsers, and serialied to a string.
 *
 * # Example
 *
 * ``` use lightningcss::stylesheet::{ StyleSheet, ParserOptions, MinifyOptions, PrinterOptions };
 *
 * // Parse a style sheet from a string. let mut stylesheet = StyleSheet::parse( r#" .foo { color: red; }
 *
 * .bar { color: red; } "#, ParserOptions::default() ).unwrap();
 *
 * // Minify the stylesheet. stylesheet.minify(MinifyOptions::default()).unwrap();
 *
 * // Serialize it to a string. let res = stylesheet.to_css(PrinterOptions::default()).unwrap(); assert_eq!(res.code, ".foo, .bar {\n  color: red;\n}\n"); ```
 */
interface StyleSheet<D = Declaration, M = MediaQuery> {
  /**
   * The license comments that appeared at the start of the file.
   */
  licenseComments: String[];
  /**
   * A list of top-level rules within the style sheet.
   */
  rules: Rule<D, M>[];
  /**
   * The source map URL extracted from the original style sheet.
   */
  sourceMapUrls: (string | null)[];
  /**
   * A list of file names for all source files included within the style sheet. Sources are referenced by index in the `loc` property of each rule.
   */
  sources: string[];
}
/**
 * A [@media](https://drafts.csswg.org/css-conditional-3/#at-media) rule.
 */
interface MediaRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The media query list.
   */
  query: MediaList<M>;
  /**
   * The rules within the `@media` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A source location.
 */
interface Location2 {
  /**
   * The column number within a line, starting at 1 for first the character of the line. Column numbers are counted in UTF-16 code units.
   */
  column: number;
  /**
   * The line number, starting at 0.
   */
  line: number;
  /**
   * The index of the source file within the source map.
   */
  source_index: number;
}
/**
 * A [media query list](https://drafts.csswg.org/mediaqueries/#mq-list).
 */
interface MediaList<M = MediaQuery> {
  /**
   * The list of media queries.
   */
  mediaQueries: M[];
}
/**
 * A [media query](https://drafts.csswg.org/mediaqueries/#media).
 */
interface MediaQuery {
  /**
   * The condition that this media query contains. This cannot have `or` in the first level.
   */
  condition?: MediaCondition | null;
  /**
   * The media type for this query, that can be known, unknown, or "all".
   */
  mediaType: MediaType;
  /**
   * The qualifier for this query.
   */
  qualifier?: Qualifier | null;
}
interface LengthValue {
  /**
   * The length unit.
   */
  unit: LengthUnit;
  /**
   * The length value.
   */
  value: number;
}
/**
 * A CSS environment variable reference.
 */
interface EnvironmentVariable {
  /**
   * A fallback value in case the variable is not defined.
   */
  fallback?: TokenOrValue[] | null;
  /**
   * Optional indices into the dimensions of the environment variable.
   */
  indices?: number[];
  /**
   * The environment variable name.
   */
  name: EnvironmentVariableName;
}
/**
 * A CSS [url()](https://www.w3.org/TR/css-values-4/#urls) value and its source location.
 */
interface Url {
  /**
   * The location where the `url()` was seen in the CSS source file.
   */
  loc: Location;
  /**
   * The url string.
   */
  url: String;
}
/**
 * A line and column position within a source file.
 */
interface Location {
  /**
   * The column number, starting from 1.
   */
  column: number;
  /**
   * The line number, starting from 1.
   */
  line: number;
}
/**
 * A CSS variable reference.
 */
interface Variable {
  /**
   * A fallback value in case the variable is not defined.
   */
  fallback?: TokenOrValue[] | null;
  /**
   * The variable name.
   */
  name: DashedIdentReference;
}
/**
 * A CSS [`<dashed-ident>`](https://www.w3.org/TR/css-values-4/#dashed-idents) reference.
 *
 * Dashed idents are used in cases where an identifier can be either author defined _or_ CSS-defined. Author defined idents must start with two dash characters ("--") or parsing will fail.
 *
 * In CSS modules, when the `dashed_idents` option is enabled, the identifier may be followed by the `from` keyword and an argument indicating where the referenced identifier is declared (e.g. a filename).
 */
interface DashedIdentReference {
  /**
   * CSS modules extension: the filename where the variable is defined. Only enabled when the CSS modules `dashed_idents` option is turned on.
   */
  from?: Specifier | null;
  /**
   * The referenced identifier.
   */
  ident: String;
}
/**
 * A custom CSS function.
 */
interface Function {
  /**
   * The function arguments.
   */
  arguments: TokenOrValue[];
  /**
   * The function name.
   */
  name: String;
}
/**
 * A [@import](https://drafts.csswg.org/css-cascade/#at-import) rule.
 */
interface ImportRule<M = MediaQuery> {
  /**
   * An optional cascade layer name, or `None` for an anonymous layer.
   */
  layer?: String[] | null;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * A media query.
   */
  media?: MediaList<M>;
  /**
   * An optional `supports()` condition.
   */
  supports?: SupportsCondition | null;
  /**
   * The url to import.
   */
  url: String;
}
/**
 * A CSS [style rule](https://drafts.csswg.org/css-syntax/#style-rules).
 */
interface StyleRule<D = Declaration, M = MediaQuery> {
  /**
   * The declarations within the style rule.
   */
  declarations?: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Nested rules within the style rule.
   */
  rules?: Rule<D, M>[];
  /**
   * The selectors for the style rule.
   */
  selectors: SelectorList;
}
/**
 * A CSS declaration block.
 *
 * Properties are separated into a list of `!important` declararations, and a list of normal declarations. This reduces memory usage compared with storing a boolean along with each property.
 */
interface DeclarationBlock<D = Declaration> {
  /**
   * A list of normal declarations in the block.
   */
  declarations?: D[];
  /**
   * A list of `!important` declarations in the block.
   */
  importantDeclarations?: D[];
}
/**
 * A CSS [`<position>`](https://www.w3.org/TR/css3-values/#position) value, as used in the `background-position` property, gradients, masks, etc.
 */
interface Position {
  /**
   * The x-position.
   */
  x: PositionComponentFor_HorizontalPositionKeyword;
  /**
   * The y-position.
   */
  y: PositionComponentFor_VerticalPositionKeyword;
}
/**
 * An x/y position within a legacy `-webkit-gradient()`.
 */
interface WebKitGradientPoint {
  /**
   * The x-position.
   */
  x: WebKitGradientPointComponentFor_HorizontalPositionKeyword;
  /**
   * The y-position.
   */
  y: WebKitGradientPointComponentFor_VerticalPositionKeyword;
}
/**
 * A color stop within a legacy `-webkit-gradient()`.
 */
interface WebKitColorStop {
  /**
   * The color of the color stop.
   */
  color: CssColor;
  /**
   * The position of the color stop.
   */
  position: number;
}
/**
 * A CSS [`image-set()`](https://drafts.csswg.org/css-images-4/#image-set-notation) value.
 *
 * `image-set()` allows the user agent to choose between multiple versions of an image to display the most appropriate resolution or file type that it supports.
 */
interface ImageSet {
  /**
   * The image options to choose from.
   */
  options: ImageSetOption[];
  /**
   * The vendor prefix for the `image-set()` function.
   */
  vendorPrefix: VendorPrefix;
}
/**
 * An image option within the `image-set()` function. See [ImageSet](ImageSet).
 */
interface ImageSetOption {
  /**
   * The mime type of the image.
   */
  fileType?: String | null;
  /**
   * The image for this option.
   */
  image: Image;
  /**
   * The resolution of the image.
   */
  resolution: Resolution;
}
/**
 * A value for the [background-position](https://drafts.csswg.org/css-backgrounds/#background-position) shorthand property.
 */
interface BackgroundPosition {
  /**
   * The x-position.
   */
  x: PositionComponentFor_HorizontalPositionKeyword;
  /**
   * The y-position.
   */
  y: PositionComponentFor_VerticalPositionKeyword;
}
/**
 * A value for the [background-repeat](https://www.w3.org/TR/css-backgrounds-3/#background-repeat) property.
 */
interface BackgroundRepeat {
  /**
   * A repeat style for the x direction.
   */
  x: BackgroundRepeatKeyword;
  /**
   * A repeat style for the y direction.
   */
  y: BackgroundRepeatKeyword;
}
/**
 * A value for the [background](https://www.w3.org/TR/css-backgrounds-3/#background) shorthand property.
 */
interface Background {
  /**
   * The background attachment.
   */
  attachment: BackgroundAttachment;
  /**
   * How the background should be clipped.
   */
  clip: BackgroundClip;
  /**
   * The background color.
   */
  color: CssColor;
  /**
   * The background image.
   */
  image: Image;
  /**
   * The background origin.
   */
  origin: BackgroundOrigin;
  /**
   * The background position.
   */
  position: BackgroundPosition;
  /**
   * How the background image should repeat.
   */
  repeat: BackgroundRepeat;
  /**
   * The size of the background image.
   */
  size: BackgroundSize;
}
/**
 * A value for the [box-shadow](https://drafts.csswg.org/css-backgrounds/#box-shadow) property.
 */
interface BoxShadow {
  /**
   * The blur radius of the shadow.
   */
  blur: Length;
  /**
   * The color of the box shadow.
   */
  color: CssColor;
  /**
   * Whether the shadow is inset within the box.
   */
  inset: boolean;
  /**
   * The spread distance of the shadow.
   */
  spread: Length;
  /**
   * The x offset of the shadow.
   */
  xOffset: Length;
  /**
   * The y offset of the shadow.
   */
  yOffset: Length;
}
/**
 * A value for the [aspect-ratio](https://drafts.csswg.org/css-sizing-4/#aspect-ratio) property.
 */
interface AspectRatio {
  /**
   * The `auto` keyword.
   */
  auto: boolean;
  /**
   * A preferred aspect ratio for the box, specified as width / height.
   */
  ratio?: Ratio | null;
}
/**
 * A value for the [overflow](https://www.w3.org/TR/css-overflow-3/#overflow-properties) shorthand property.
 */
interface Overflow {
  /**
   * The overflow mode for the x direction.
   */
  x: OverflowKeyword;
  /**
   * The overflow mode for the y direction.
   */
  y: OverflowKeyword;
}
/**
 * A value for the [inset-block](https://drafts.csswg.org/css-logical/#propdef-inset-block) shorthand property.
 */
interface InsetBlock {
  /**
   * The block end value.
   */
  blockEnd: LengthPercentageOrAuto;
  /**
   * The block start value.
   */
  blockStart: LengthPercentageOrAuto;
}
/**
 * A value for the [inset-inline](https://drafts.csswg.org/css-logical/#propdef-inset-inline) shorthand property.
 */
interface InsetInline {
  /**
   * The inline end value.
   */
  inlineEnd: LengthPercentageOrAuto;
  /**
   * The inline start value.
   */
  inlineStart: LengthPercentageOrAuto;
}
/**
 * A value for the [inset](https://drafts.csswg.org/css-logical/#propdef-inset) shorthand property.
 */
interface Inset {
  /**
   * The bottom value.
   */
  bottom: LengthPercentageOrAuto;
  /**
   * The left value.
   */
  left: LengthPercentageOrAuto;
  /**
   * The right value.
   */
  right: LengthPercentageOrAuto;
  /**
   * The top value.
   */
  top: LengthPercentageOrAuto;
}
/**
 * A value for the [border-radius](https://www.w3.org/TR/css-backgrounds-3/#border-radius) property.
 */
interface BorderRadius {
  /**
   * The x and y radius values for the bottom left corner.
   */
  bottomLeft: Size2DFor_DimensionPercentageFor_LengthValue;
  /**
   * The x and y radius values for the bottom right corner.
   */
  bottomRight: Size2DFor_DimensionPercentageFor_LengthValue;
  /**
   * The x and y radius values for the top left corner.
   */
  topLeft: Size2DFor_DimensionPercentageFor_LengthValue;
  /**
   * The x and y radius values for the top right corner.
   */
  topRight: Size2DFor_DimensionPercentageFor_LengthValue;
}
/**
 * A value for the [border-image-repeat](https://www.w3.org/TR/css-backgrounds-3/#border-image-repeat) property.
 */
interface BorderImageRepeat {
  /**
   * The horizontal repeat value.
   */
  horizontal: BorderImageRepeatKeyword;
  /**
   * The vertical repeat value.
   */
  vertical: BorderImageRepeatKeyword;
}
/**
 * A value for the [border-image-slice](https://www.w3.org/TR/css-backgrounds-3/#border-image-slice) property.
 */
interface BorderImageSlice {
  /**
   * Whether the middle of the border image should be preserved.
   */
  fill: boolean;
  /**
   * The offsets from the edges of the image.
   */
  offsets: RectFor_NumberOrPercentage;
}
/**
 * A value for the [border-image](https://www.w3.org/TR/css-backgrounds-3/#border-image) shorthand property.
 */
interface BorderImage {
  /**
   * The amount that the image extends beyond the border box.
   */
  outset: RectFor_LengthOrNumber;
  /**
   * How the border image is scaled and tiled.
   */
  repeat: BorderImageRepeat;
  /**
   * The offsets that define where the image is sliced.
   */
  slice: BorderImageSlice;
  /**
   * The border image.
   */
  source: Image;
  /**
   * The width of the border image.
   */
  width: RectFor_BorderImageSideWidth;
}
/**
 * A value for the [border-color](https://drafts.csswg.org/css-backgrounds/#propdef-border-color) shorthand property.
 */
interface BorderColor {
  /**
   * The bottom value.
   */
  bottom: CssColor;
  /**
   * The left value.
   */
  left: CssColor;
  /**
   * The right value.
   */
  right: CssColor;
  /**
   * The top value.
   */
  top: CssColor;
}
/**
 * A value for the [border-style](https://drafts.csswg.org/css-backgrounds/#propdef-border-style) shorthand property.
 */
interface BorderStyle {
  /**
   * The bottom value.
   */
  bottom: LineStyle;
  /**
   * The left value.
   */
  left: LineStyle;
  /**
   * The right value.
   */
  right: LineStyle;
  /**
   * The top value.
   */
  top: LineStyle;
}
/**
 * A value for the [border-width](https://drafts.csswg.org/css-backgrounds/#propdef-border-width) shorthand property.
 */
interface BorderWidth {
  /**
   * The bottom value.
   */
  bottom: BorderSideWidth;
  /**
   * The left value.
   */
  left: BorderSideWidth;
  /**
   * The right value.
   */
  right: BorderSideWidth;
  /**
   * The top value.
   */
  top: BorderSideWidth;
}
/**
 * A value for the [border-block-color](https://drafts.csswg.org/css-logical/#propdef-border-block-color) shorthand property.
 */
interface BorderBlockColor {
  /**
   * The block end value.
   */
  end: CssColor;
  /**
   * The block start value.
   */
  start: CssColor;
}
/**
 * A value for the [border-block-style](https://drafts.csswg.org/css-logical/#propdef-border-block-style) shorthand property.
 */
interface BorderBlockStyle {
  /**
   * The block end value.
   */
  end: LineStyle;
  /**
   * The block start value.
   */
  start: LineStyle;
}
/**
 * A value for the [border-block-width](https://drafts.csswg.org/css-logical/#propdef-border-block-width) shorthand property.
 */
interface BorderBlockWidth {
  /**
   * The block end value.
   */
  end: BorderSideWidth;
  /**
   * The block start value.
   */
  start: BorderSideWidth;
}
/**
 * A value for the [border-inline-color](https://drafts.csswg.org/css-logical/#propdef-border-inline-color) shorthand property.
 */
interface BorderInlineColor {
  /**
   * The inline end value.
   */
  end: CssColor;
  /**
   * The inline start value.
   */
  start: CssColor;
}
/**
 * A value for the [border-inline-style](https://drafts.csswg.org/css-logical/#propdef-border-inline-style) shorthand property.
 */
interface BorderInlineStyle {
  /**
   * The inline end value.
   */
  end: LineStyle;
  /**
   * The inline start value.
   */
  start: LineStyle;
}
/**
 * A value for the [border-inline-width](https://drafts.csswg.org/css-logical/#propdef-border-inline-width) shorthand property.
 */
interface BorderInlineWidth {
  /**
   * The inline end value.
   */
  end: BorderSideWidth;
  /**
   * The inline start value.
   */
  start: BorderSideWidth;
}
/**
 * A generic type that represents the `border` and `outline` shorthand properties.
 */
interface GenericBorderFor_LineStyle {
  /**
   * The border color.
   */
  color: CssColor;
  /**
   * The border style.
   */
  style: LineStyle;
  /**
   * The width of the border.
   */
  width: BorderSideWidth;
}
/**
 * A generic type that represents the `border` and `outline` shorthand properties.
 */
interface GenericBorderFor_OutlineStyleAnd_11 {
  /**
   * The border color.
   */
  color: CssColor;
  /**
   * The border style.
   */
  style: OutlineStyle;
  /**
   * The width of the border.
   */
  width: BorderSideWidth;
}
/**
 * A value for the [flex-flow](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/#flex-flow-property) shorthand property.
 */
interface FlexFlow {
  /**
   * The direction that flex items flow.
   */
  direction: FlexDirection;
  /**
   * How the flex items wrap.
   */
  wrap: FlexWrap;
}
/**
 * A value for the [flex](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/#flex-property) shorthand property.
 */
interface Flex {
  /**
   * The flex basis.
   */
  basis: LengthPercentageOrAuto;
  /**
   * The flex grow factor.
   */
  grow: number;
  /**
   * The flex shrink factor.
   */
  shrink: number;
}
/**
 * A value for the [place-content](https://www.w3.org/TR/css-align-3/#place-content) shorthand property.
 */
interface PlaceContent {
  /**
   * The content alignment.
   */
  align: AlignContent;
  /**
   * The content justification.
   */
  justify: JustifyContent;
}
/**
 * A value for the [place-self](https://www.w3.org/TR/css-align-3/#place-self-property) shorthand property.
 */
interface PlaceSelf {
  /**
   * The item alignment.
   */
  align: AlignSelf;
  /**
   * The item justification.
   */
  justify: JustifySelf;
}
/**
 * A value for the [place-items](https://www.w3.org/TR/css-align-3/#place-items-property) shorthand property.
 */
interface PlaceItems {
  /**
   * The item alignment.
   */
  align: AlignItems;
  /**
   * The item justification.
   */
  justify: JustifyItems;
}
/**
 * A value for the [gap](https://www.w3.org/TR/css-align-3/#gap-shorthand) shorthand property.
 */
interface Gap {
  /**
   * The column gap.
   */
  column: GapValue;
  /**
   * The row gap.
   */
  row: GapValue;
}
/**
 * A [`<track-repeat>`](https://drafts.csswg.org/css-grid-2/#typedef-track-repeat) value, representing the `repeat()` function in a track list.
 *
 * See [TrackListItem](TrackListItem).
 */
interface TrackRepeat {
  /**
   * The repeat count.
   */
  count: RepeatCount;
  /**
   * The line names to repeat.
   */
  lineNames: String[][];
  /**
   * The track sizes to repeat.
   */
  trackSizes: TrackSize[];
}
interface GridAutoFlow {
  /**
   * If specified, a dense packing algorithm is used, which fills in holes in the grid.
   */
  dense: boolean;
  /**
   * The direction of the auto flow.
   */
  direction: AutoFlowDirection;
}
/**
 * A value for the [grid-template](https://drafts.csswg.org/css-grid-2/#explicit-grid-shorthand) shorthand property.
 *
 * none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?
 *
 * If `areas` is not `None`, then `rows` must also not be `None`.
 */
interface GridTemplate {
  /**
   * The named grid areas.
   */
  areas: GridTemplateAreas;
  /**
   * The grid template columns.
   */
  columns: TrackSizing;
  /**
   * The grid template rows.
   */
  rows: TrackSizing;
}
/**
 * A value for the [grid](https://drafts.csswg.org/css-grid-2/#grid-shorthand) shorthand property.
 *
 * <'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>
 *
 * Explicit and implicit values may not be combined.
 */
interface Grid {
  /**
   * Explicit grid template areas.
   */
  areas: GridTemplateAreas;
  /**
   * The grid auto columns.
   */
  autoColumns: TrackSize[];
  /**
   * The grid auto flow.
   */
  autoFlow: GridAutoFlow;
  /**
   * The grid auto rows.
   */
  autoRows: TrackSize[];
  /**
   * Explicit grid template columns.
   */
  columns: TrackSizing;
  /**
   * Explicit grid template rows.
   */
  rows: TrackSizing;
}
/**
 * A value for the [grid-row](https://drafts.csswg.org/css-grid-2/#propdef-grid-row) shorthand property. <grid-line> [ / <grid-line> ]?
 */
interface GridRow {
  /**
   * The ending line.
   */
  end: GridLine;
  /**
   * The starting line.
   */
  start: GridLine;
}
/**
 * A value for the [grid-column](https://drafts.csswg.org/css-grid-2/#propdef-grid-column) shorthand property. <grid-line> [ / <grid-line> ]?
 */
interface GridColumn {
  /**
   * The ending line.
   */
  end: GridLine;
  /**
   * The starting line.
   */
  start: GridLine;
}
/**
 * A value for the [grid-area](https://drafts.csswg.org/css-grid-2/#propdef-grid-area) shorthand property. <grid-line> [ / <grid-line> ]{0,3}
 */
interface GridArea {
  /**
   * The grid column end placement.
   */
  columnEnd: GridLine;
  /**
   * The grid column start placement.
   */
  columnStart: GridLine;
  /**
   * The grid row end placement.
   */
  rowEnd: GridLine;
  /**
   * The grid row start placement.
   */
  rowStart: GridLine;
}
/**
 * A value for the [margin-block](https://drafts.csswg.org/css-logical/#propdef-margin-block) shorthand property.
 */
interface MarginBlock {
  /**
   * The block end value.
   */
  blockEnd: LengthPercentageOrAuto;
  /**
   * The block start value.
   */
  blockStart: LengthPercentageOrAuto;
}
/**
 * A value for the [margin-inline](https://drafts.csswg.org/css-logical/#propdef-margin-inline) shorthand property.
 */
interface MarginInline {
  /**
   * The inline end value.
   */
  inlineEnd: LengthPercentageOrAuto;
  /**
   * The inline start value.
   */
  inlineStart: LengthPercentageOrAuto;
}
/**
 * A value for the [margin](https://drafts.csswg.org/css-box-4/#propdef-margin) shorthand property.
 */
interface Margin {
  /**
   * The bottom value.
   */
  bottom: LengthPercentageOrAuto;
  /**
   * The left value.
   */
  left: LengthPercentageOrAuto;
  /**
   * The right value.
   */
  right: LengthPercentageOrAuto;
  /**
   * The top value.
   */
  top: LengthPercentageOrAuto;
}
/**
 * A value for the [padding-block](https://drafts.csswg.org/css-logical/#propdef-padding-block) shorthand property.
 */
interface PaddingBlock {
  /**
   * The block end value.
   */
  blockEnd: LengthPercentageOrAuto;
  /**
   * The block start value.
   */
  blockStart: LengthPercentageOrAuto;
}
/**
 * A value for the [padding-inline](https://drafts.csswg.org/css-logical/#propdef-padding-inline) shorthand property.
 */
interface PaddingInline {
  /**
   * The inline end value.
   */
  inlineEnd: LengthPercentageOrAuto;
  /**
   * The inline start value.
   */
  inlineStart: LengthPercentageOrAuto;
}
/**
 * A value for the [padding](https://drafts.csswg.org/css-box-4/#propdef-padding) shorthand property.
 */
interface Padding {
  /**
   * The bottom value.
   */
  bottom: LengthPercentageOrAuto;
  /**
   * The left value.
   */
  left: LengthPercentageOrAuto;
  /**
   * The right value.
   */
  right: LengthPercentageOrAuto;
  /**
   * The top value.
   */
  top: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-margin-block](https://drafts.csswg.org/css-scroll-snap/#propdef-scroll-margin-block) shorthand property.
 */
interface ScrollMarginBlock {
  /**
   * The block end value.
   */
  blockEnd: LengthPercentageOrAuto;
  /**
   * The block start value.
   */
  blockStart: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-margin-inline](https://drafts.csswg.org/css-scroll-snap/#propdef-scroll-margin-inline) shorthand property.
 */
interface ScrollMarginInline {
  /**
   * The inline end value.
   */
  inlineEnd: LengthPercentageOrAuto;
  /**
   * The inline start value.
   */
  inlineStart: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-margin](https://drafts.csswg.org/css-scroll-snap/#scroll-margin) shorthand property.
 */
interface ScrollMargin {
  /**
   * The bottom value.
   */
  bottom: LengthPercentageOrAuto;
  /**
   * The left value.
   */
  left: LengthPercentageOrAuto;
  /**
   * The right value.
   */
  right: LengthPercentageOrAuto;
  /**
   * The top value.
   */
  top: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-padding-block](https://drafts.csswg.org/css-scroll-snap/#propdef-scroll-padding-block) shorthand property.
 */
interface ScrollPaddingBlock {
  /**
   * The block end value.
   */
  blockEnd: LengthPercentageOrAuto;
  /**
   * The block start value.
   */
  blockStart: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-padding-inline](https://drafts.csswg.org/css-scroll-snap/#propdef-scroll-padding-inline) shorthand property.
 */
interface ScrollPaddingInline {
  /**
   * The inline end value.
   */
  inlineEnd: LengthPercentageOrAuto;
  /**
   * The inline start value.
   */
  inlineStart: LengthPercentageOrAuto;
}
/**
 * A value for the [scroll-padding](https://drafts.csswg.org/css-scroll-snap/#scroll-padding) shorthand property.
 */
interface ScrollPadding {
  /**
   * The bottom value.
   */
  bottom: LengthPercentageOrAuto;
  /**
   * The left value.
   */
  left: LengthPercentageOrAuto;
  /**
   * The right value.
   */
  right: LengthPercentageOrAuto;
  /**
   * The top value.
   */
  top: LengthPercentageOrAuto;
}
/**
 * A value for the [font](https://www.w3.org/TR/css-fonts-4/#font-prop) shorthand property.
 */
interface Font {
  /**
   * The font family.
   */
  family: FontFamily[];
  /**
   * The line height.
   */
  lineHeight: LineHeight;
  /**
   * The font size.
   */
  size: FontSize;
  /**
   * The font stretch.
   */
  stretch: FontStretch;
  /**
   * The font style.
   */
  style: FontStyle;
  /**
   * How the text should be capitalized. Only CSS 2.1 values are supported.
   */
  variantCaps: FontVariantCaps;
  /**
   * The font weight.
   */
  weight: FontWeight;
}
/**
 * A value for the [transition](https://www.w3.org/TR/2018/WD-css-transitions-1-20181011/#transition-shorthand-property) property.
 */
interface Transition {
  /**
   * The delay before the transition starts.
   */
  delay: Time;
  /**
   * The duration of the transition.
   */
  duration: Time;
  /**
   * The property to transition.
   */
  property: PropertyId;
  /**
   * The easing function for the transition.
   */
  timingFunction: EasingFunction;
}
/**
 * The [scroll()](https://drafts.csswg.org/scroll-animations-1/#scroll-notation) function.
 */
interface ScrollTimeline {
  /**
   * Specifies which axis of the scroll container to use as the progress for the timeline.
   */
  axis: ScrollAxis;
  /**
   * Specifies which element to use as the scroll container.
   */
  scroller: Scroller;
}
/**
 * The [view()](https://drafts.csswg.org/scroll-animations-1/#view-notation) function.
 */
interface ViewTimeline {
  /**
   * Specifies which axis of the scroll container to use as the progress for the timeline.
   */
  axis: ScrollAxis;
  /**
   * Provides an adjustment of the view progress visibility range.
   */
  inset: Size2DFor_LengthPercentageOrAuto;
}
/**
 * A value for the [animation-range](https://drafts.csswg.org/scroll-animations/#animation-range) shorthand property.
 */
interface AnimationRange {
  /**
   * The end of the animation's attachment range.
   */
  end: AnimationRangeEnd;
  /**
   * The start of the animation's attachment range.
   */
  start: AnimationRangeStart;
}
/**
 * A value for the [animation](https://drafts.csswg.org/css-animations/#animation) shorthand property.
 */
interface Animation {
  /**
   * The animation delay.
   */
  delay: Time;
  /**
   * The direction of the animation.
   */
  direction: AnimationDirection;
  /**
   * The animation duration.
   */
  duration: Time;
  /**
   * The animation fill mode.
   */
  fillMode: AnimationFillMode;
  /**
   * The number of times the animation will run.
   */
  iterationCount: AnimationIterationCount;
  /**
   * The animation name.
   */
  name: AnimationName;
  /**
   * The current play state of the animation.
   */
  playState: AnimationPlayState;
  /**
   * The animation timeline.
   */
  timeline: AnimationTimeline;
  /**
   * The easing function for the animation.
   */
  timingFunction: EasingFunction;
}
/**
 * A 2D matrix.
 */
interface MatrixForFloat {
  a: number;
  b: number;
  c: number;
  d: number;
  e: number;
  f: number;
}
/**
 * A 3D matrix.
 */
interface Matrix3DForFloat {
  m11: number;
  m12: number;
  m13: number;
  m14: number;
  m21: number;
  m22: number;
  m23: number;
  m24: number;
  m31: number;
  m32: number;
  m33: number;
  m34: number;
  m41: number;
  m42: number;
  m43: number;
  m44: number;
}
/**
 * A value for the [rotate](https://drafts.csswg.org/css-transforms-2/#propdef-rotate) property.
 */
interface Rotate {
  /**
   * The angle of rotation.
   */
  angle: Angle;
  /**
   * Rotation around the x axis.
   */
  x: number;
  /**
   * Rotation around the y axis.
   */
  y: number;
  /**
   * Rotation around the z axis.
   */
  z: number;
}
/**
 * A value for the [text-transform](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-transform-property) property.
 */
interface TextTransform {
  /**
   * How case should be transformed.
   */
  case: TextTransformCase;
  /**
   * Converts all small Kana characters to the equivalent full-size Kana.
   */
  fullSizeKana: boolean;
  /**
   * Puts all typographic character units in full-width form.
   */
  fullWidth: boolean;
}
/**
 * A value for the [text-indent](https://www.w3.org/TR/2021/CRD-css-text-3-20210422/#text-indent-property) property.
 */
interface TextIndent {
  /**
   * Affects the first line after each hard break.
   */
  eachLine: boolean;
  /**
   * Inverts which lines are affected.
   */
  hanging: boolean;
  /**
   * The amount to indent.
   */
  value: DimensionPercentageFor_LengthValue;
}
/**
 * A value for the [text-decoration](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-decoration-property) shorthand property.
 */
interface TextDecoration {
  /**
   * The color of the lines.
   */
  color: CssColor;
  /**
   * The lines to display.
   */
  line: TextDecorationLine;
  /**
   * The style of the lines.
   */
  style: TextDecorationStyle;
  /**
   * The thickness of the lines.
   */
  thickness: TextDecorationThickness;
}
/**
 * A value for the [text-emphasis](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-property) shorthand property.
 */
interface TextEmphasis {
  /**
   * The text emphasis color.
   */
  color: CssColor;
  /**
   * The text emphasis style.
   */
  style: TextEmphasisStyle;
}
/**
 * A value for the [text-emphasis-position](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-emphasis-position-property) property.
 */
interface TextEmphasisPosition {
  /**
   * The horizontal position.
   */
  horizontal: TextEmphasisPositionHorizontal;
  /**
   * The vertical position.
   */
  vertical: TextEmphasisPositionVertical;
}
/**
 * A value for the [text-shadow](https://www.w3.org/TR/2020/WD-css-text-decor-4-20200506/#text-shadow-property) property.
 */
interface TextShadow {
  /**
   * The blur radius of the text shadow.
   */
  blur: Length;
  /**
   * The color of the text shadow.
   */
  color: CssColor;
  /**
   * The spread distance of the text shadow.
   */
  spread: Length;
  /**
   * The x offset of the text shadow.
   */
  xOffset: Length;
  /**
   * The y offset of the text shadow.
   */
  yOffset: Length;
}
/**
 * A value for the [cursor](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#cursor) property.
 */
interface Cursor {
  /**
   * A list of cursor images.
   */
  images: CursorImage[];
  /**
   * A pre-defined cursor.
   */
  keyword: CursorKeyword;
}
/**
 * A [cursor image](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#cursor) value, used in the `cursor` property.
 *
 * See [Cursor](Cursor).
 */
interface CursorImage {
  /**
   * The location in the image where the mouse pointer appears.
   *
   * @minItems 2
   * @maxItems 2
   */
  hotspot?: [number, number] | null;
  /**
   * A url to the cursor image.
   */
  url: Url;
}
/**
 * A value for the [caret](https://www.w3.org/TR/2021/WD-css-ui-4-20210316/#caret) shorthand property.
 */
interface Caret {
  /**
   * The caret color.
   */
  color: ColorOrAuto;
  /**
   * The caret shape.
   */
  shape: CaretShape;
}
/**
 * A value for the [list-style](https://www.w3.org/TR/2020/WD-css-lists-3-20201117/#list-style-property) shorthand property.
 */
interface ListStyle {
  /**
   * The list marker image.
   */
  image: Image;
  /**
   * The list style type.
   */
  listStyleType: ListStyleType;
  /**
   * The position of the list marker.
   */
  position: ListStylePosition;
}
/**
 * A value for the [composes](https://github.com/css-modules/css-modules/#dependencies) property from CSS modules.
 */
interface Composes {
  /**
   * Where the class names are composed from.
   */
  from?: Specifier | null;
  /**
   * The source location of the `composes` property.
   */
  loc: Location;
  /**
   * A list of class names to compose.
   */
  names: String[];
}
/**
 * An [`inset()`](https://www.w3.org/TR/css-shapes-1/#funcdef-inset) rectangle shape.
 */
interface InsetRect {
  /**
   * A corner radius for the rectangle.
   */
  radius: BorderRadius;
  /**
   * The rectangle.
   */
  rect: RectFor_DimensionPercentageFor_LengthValue;
}
/**
 * A [`circle()`](https://www.w3.org/TR/css-shapes-1/#funcdef-circle) shape.
 */
interface Circle2 {
  /**
   * The position of the center of the circle.
   */
  position: Position;
  /**
   * The radius of the circle.
   */
  radius: ShapeRadius;
}
/**
 * An [`ellipse()`](https://www.w3.org/TR/css-shapes-1/#funcdef-ellipse) shape.
 */
interface Ellipse2 {
  /**
   * The position of the center of the ellipse.
   */
  position: Position;
  /**
   * The x-radius of the ellipse.
   */
  radiusX: ShapeRadius;
  /**
   * The y-radius of the ellipse.
   */
  radiusY: ShapeRadius;
}
/**
 * A [`polygon()`](https://www.w3.org/TR/css-shapes-1/#funcdef-polygon) shape.
 */
interface Polygon {
  /**
   * The fill rule used to determine the interior of the polygon.
   */
  fillRule: FillRule;
  /**
   * The points of each vertex of the polygon.
   */
  points: Point[];
}
/**
 * A point within a `polygon()` shape.
 *
 * See [Polygon](Polygon).
 */
interface Point {
  /**
   * The x position of the point.
   */
  x: DimensionPercentageFor_LengthValue;
  /**
   * the y position of the point.
   */
  y: DimensionPercentageFor_LengthValue;
}
/**
 * A value for the [mask](https://www.w3.org/TR/css-masking-1/#the-mask) shorthand property.
 */
interface Mask {
  /**
   * The box in which the mask is clipped.
   */
  clip: MaskClip;
  /**
   * How the mask is composited with the element.
   */
  composite: MaskComposite;
  /**
   * The mask image.
   */
  image: Image;
  /**
   * How the mask image is interpreted.
   */
  mode: MaskMode;
  /**
   * The origin of the mask.
   */
  origin: GeometryBox;
  /**
   * The position of the mask.
   */
  position: Position;
  /**
   * How the mask repeats.
   */
  repeat: BackgroundRepeat;
  /**
   * The size of the mask image.
   */
  size: BackgroundSize;
}
/**
 * A value for the [mask-border](https://www.w3.org/TR/css-masking-1/#the-mask-border) shorthand property.
 */
interface MaskBorder {
  /**
   * How the mask image is interpreted.
   */
  mode: MaskBorderMode;
  /**
   * The amount that the image extends beyond the border box.
   */
  outset: RectFor_LengthOrNumber;
  /**
   * How the mask image is scaled and tiled.
   */
  repeat: BorderImageRepeat;
  /**
   * The offsets that define where the image is sliced.
   */
  slice: BorderImageSlice;
  /**
   * The mask image.
   */
  source: Image;
  /**
   * The width of the mask image.
   */
  width: RectFor_BorderImageSideWidth;
}
/**
 * A [`drop-shadow()`](https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-drop-shadow) filter function.
 */
interface DropShadow {
  /**
   * The blur radius of the drop shadow.
   */
  blur: Length;
  /**
   * The color of the drop shadow.
   */
  color: CssColor;
  /**
   * The x offset of the drop shadow.
   */
  xOffset: Length;
  /**
   * The y offset of the drop shadow.
   */
  yOffset: Length;
}
/**
 * A value for the [container](https://drafts.csswg.org/css-contain-3/#container-shorthand) shorthand property.
 */
interface Container {
  /**
   * The container type.
   */
  containerType: ContainerType;
  /**
   * The container name.
   */
  name: ContainerNameList;
}
interface ColorScheme {
  dark: boolean;
  light: boolean;
  only: boolean;
}
/**
 * A known property with an unparsed value.
 *
 * This type is used when the value of a known property could not be parsed, e.g. in the case css `var()` references are encountered. In this case, the raw tokens are stored instead.
 */
interface UnparsedProperty {
  /**
   * The id of the property.
   */
  propertyId: PropertyId;
  /**
   * The property value, stored as a raw token list.
   */
  value: TokenOrValue[];
}
/**
 * A CSS custom property, representing any unknown property.
 */
interface CustomProperty {
  /**
   * The name of the property.
   */
  name: CustomPropertyName;
  /**
   * The property value, stored as a raw token list.
   */
  value: TokenOrValue[];
}
interface AttrOperation {
  caseSensitivity?: ParsedCaseSensitivity & string;
  operator: AttrSelectorOperator;
  value: string;
}
/**
 * A [view transition part selector](https://w3c.github.io/csswg-drafts/css-view-transitions-1/#typedef-pt-name-selector).
 */
interface ViewTransitionPartSelector {
  /**
   * A list of view transition classes.
   */
  classes: String[];
  /**
   * The view transition part name.
   */
  name?: ViewTransitionPartName | null;
}
/**
 * A [@keyframes](https://drafts.csswg.org/css-animations/#keyframes) rule.
 */
interface KeyframesRule<D = Declaration> {
  /**
   * A list of keyframes in the animation.
   */
  keyframes: Keyframe<D>[];
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The animation name. <keyframes-name> = <custom-ident> | <string>
   */
  name: KeyframesName;
  /**
   * A vendor prefix for the rule, e.g. `@-webkit-keyframes`.
   */
  vendorPrefix: VendorPrefix;
}
/**
 * An individual keyframe within an `@keyframes` rule.
 *
 * See [KeyframesRule](KeyframesRule).
 */
interface Keyframe<D = Declaration> {
  /**
   * The declarations for this keyframe.
   */
  declarations: DeclarationBlock<D>;
  /**
   * A list of keyframe selectors to associate with the declarations in this keyframe.
   */
  selectors: KeyframeSelector[];
}
/**
 * A percentage of a given timeline range
 */
interface TimelineRangePercentage {
  /**
   * The name of the timeline range.
   */
  name: TimelineRangeName;
  /**
   * The percentage progress between the start and end of the range.
   */
  percentage: number;
}
/**
 * A [@font-face](https://drafts.csswg.org/css-fonts/#font-face-rule) rule.
 */
interface FontFaceRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Declarations in the `@font-face` rule.
   */
  properties: FontFaceProperty[];
}
/**
 * A `url()` value for the [src](https://drafts.csswg.org/css-fonts/#src-desc) property in an `@font-face` rule.
 */
interface UrlSource {
  /**
   * Optional `format()` function.
   */
  format?: FontFormat | null;
  /**
   * Optional `tech()` function.
   */
  tech: FontTechnology[];
  /**
   * The URL.
   */
  url: Url;
}
/**
 * A contiguous range of Unicode code points.
 *
 * Cannot be empty. Can represent a single code point when start == end.
 */
interface UnicodeRange {
  /**
   * Inclusive end of the range. In [0, 0x10FFFF].
   */
  end: number;
  /**
   * Inclusive start of the range. In [0, end].
   */
  start: number;
}
/**
 * A [@font-palette-values](https://drafts.csswg.org/css-fonts-4/#font-palette-values) rule.
 */
interface FontPaletteValuesRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the font palette.
   */
  name: String;
  /**
   * Declarations in the `@font-palette-values` rule.
   */
  properties: FontPaletteValuesProperty[];
}
/**
 * A value for the [override-colors](https://drafts.csswg.org/css-fonts-4/#override-color) property in an `@font-palette-values` rule.
 */
interface OverrideColors {
  /**
   * The replacement color.
   */
  color: CssColor;
  /**
   * The index of the color within the palette to override.
   */
  index: number;
}
/**
 * A [@font-feature-values](https://drafts.csswg.org/css-fonts/#font-feature-values) rule.
 */
interface FontFeatureValuesRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the font feature values.
   */
  name: String[];
  /**
   * The rules within the `@font-feature-values` rule.
   */
  rules: {
    [k: string]: FontFeatureSubrule;
  };
}
/**
 * A sub-rule of `@font-feature-values` https://drafts.csswg.org/css-fonts/#font-feature-values-syntax
 */
interface FontFeatureSubrule {
  /**
   * The declarations within the `@font-feature-values` sub-rules.
   */
  declarations: {
    [k: string]: number[];
  };
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the `@font-feature-values` sub-rule.
   */
  name: FontFeatureSubruleType;
}
/**
 * A [@page](https://www.w3.org/TR/css-page-3/#at-page-rule) rule.
 */
interface PageRule<D = Declaration> {
  /**
   * The declarations within the `@page` rule.
   */
  declarations: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The nested margin rules.
   */
  rules: PageMarginRule<D>[];
  /**
   * A list of page selectors.
   */
  selectors: PageSelector[];
}
/**
 * A [page margin rule](https://www.w3.org/TR/css-page-3/#margin-at-rules) rule.
 */
interface PageMarginRule<D = Declaration> {
  /**
   * The declarations within the rule.
   */
  declarations: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The margin box identifier for this rule.
   */
  marginBox: PageMarginBox;
}
/**
 * A [page selector](https://www.w3.org/TR/css-page-3/#typedef-page-selector) within a `@page` rule.
 *
 * Either a name or at least one pseudo class is required.
 */
interface PageSelector {
  /**
   * An optional named page type.
   */
  name?: String | null;
  /**
   * A list of page pseudo classes.
   */
  pseudoClasses: PagePseudoClass[];
}
/**
 * A [@supports](https://drafts.csswg.org/css-conditional-3/#at-supports) rule.
 */
interface SupportsRule<D = Declaration, M = MediaQuery> {
  /**
   * The supports condition.
   */
  condition: SupportsCondition;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The rules within the `@supports` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A [@counter-style](https://drafts.csswg.org/css-counter-styles/#the-counter-style-rule) rule.
 */
interface CounterStyleRule<D = Declaration> {
  /**
   * Declarations in the `@counter-style` rule.
   */
  declarations: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the counter style to declare.
   */
  name: String;
}
/**
 * A [@namespace](https://drafts.csswg.org/css-namespaces/#declaration) rule.
 */
interface NamespaceRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * An optional namespace prefix to declare, or `None` to declare the default namespace.
   */
  prefix?: String | null;
  /**
   * The url of the namespace.
   */
  url: String;
}
/**
 * A [@-moz-document](https://www.w3.org/TR/2012/WD-css3-conditional-20120911/#at-document) rule.
 *
 * Note that only the `url-prefix()` function with no arguments is supported, and only the `-moz` prefix is allowed since Firefox was the only browser that ever implemented this rule.
 */
interface MozDocumentRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Nested rules within the `@-moz-document` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A [@nest](https://www.w3.org/TR/css-nesting-1/#at-nest) rule.
 */
interface NestingRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The style rule that defines the selector and declarations for the `@nest` rule.
   */
  style: StyleRule<D, M>;
}
/**
 * A [nested declarations](https://drafts.csswg.org/css-nesting/#nested-declarations-rule) rule.
 */
interface NestedDeclarationsRule<D = Declaration> {
  /**
   * The style rule that defines the selector and declarations for the `@nest` rule.
   */
  declarations: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
}
/**
 * A [@viewport](https://drafts.csswg.org/css-device-adapt/#atviewport-rule) rule.
 */
interface ViewportRule<D = Declaration> {
  /**
   * The declarations within the `@viewport` rule.
   */
  declarations: DeclarationBlock<D>;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The vendor prefix for this rule, e.g. `@-ms-viewport`.
   */
  vendorPrefix: VendorPrefix;
}
/**
 * A [@custom-media](https://drafts.csswg.org/mediaqueries-5/#custom-mq) rule.
 */
interface CustomMediaRule<M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the declared media query.
   */
  name: String;
  /**
   * The media query to declare.
   */
  query: MediaList<M>;
}
/**
 * A [@layer statement](https://drafts.csswg.org/css-cascade-5/#layer-empty) rule.
 *
 * See also [LayerBlockRule](LayerBlockRule).
 */
interface LayerStatementRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The layer names to declare.
   */
  names: String[][];
}
/**
 * A [@layer block](https://drafts.csswg.org/css-cascade-5/#layer-block) rule.
 */
interface LayerBlockRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the layer to declare, or `None` to declare an anonymous layer.
   */
  name?: String[] | null;
  /**
   * The rules within the `@layer` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A [@property](https://drafts.css-houdini.org/css-properties-values-api/#at-property-rule) rule.
 */
interface PropertyRule {
  /**
   * Whether the custom property is inherited.
   */
  inherits: boolean;
  /**
   * An optional initial value for the custom property.
   */
  initialValue?: ParsedComponent | null;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the custom property to declare.
   */
  name: String;
  /**
   * A syntax string to specify the grammar for the custom property.
   */
  syntax: SyntaxString$1;
}
/**
 * A [syntax component](https://drafts.css-houdini.org/css-properties-values-api/#syntax-component) within a [SyntaxString](SyntaxString).
 *
 * A syntax component consists of a component kind an a multiplier, which indicates how the component may repeat during parsing.
 */
interface SyntaxComponent {
  /**
   * The kind of component.
   */
  kind: SyntaxComponentKind;
  /**
   * A multiplier for the component.
   */
  multiplier: Multiplier;
}
/**
 * A [@container](https://drafts.csswg.org/css-contain-3/#container-rule) rule.
 */
interface ContainerRule<D = Declaration, M = MediaQuery> {
  /**
   * The container condition.
   */
  condition?: ContainerCondition<D> | null;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the container.
   */
  name?: String | null;
  /**
   * The rules within the `@container` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A [@scope](https://drafts.csswg.org/css-cascade-6/#scope-atrule) rule.
 *
 * @scope (<scope-start>) [to (<scope-end>)]? { <stylesheet> }
 */
interface ScopeRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Nested rules within the `@scope` rule.
   */
  rules: Rule<D, M>[];
  /**
   * A selector list used to identify any scoping limits.
   */
  scopeEnd?: SelectorList | null;
  /**
   * A selector list used to identify the scoping root(s).
   */
  scopeStart?: SelectorList | null;
}
/**
 * A [@starting-style](https://drafts.csswg.org/css-transitions-2/#defining-before-change-style-the-starting-style-rule) rule.
 */
interface StartingStyleRule<D = Declaration, M = MediaQuery> {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Nested rules within the `@starting-style` rule.
   */
  rules: Rule<D, M>[];
}
/**
 * A [@view-transition](https://drafts.csswg.org/css-view-transitions-2/#view-transition-rule) rule.
 */
interface ViewTransitionRule {
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * Declarations in the `@view-transition` rule.
   */
  properties: ViewTransitionProperty[];
}
/**
 * An unknown at-rule, stored as raw tokens.
 */
interface UnknownAtRule {
  /**
   * The contents of the block, if any.
   */
  block?: TokenOrValue[] | null;
  /**
   * The location of the rule in the source file.
   */
  loc: Location2;
  /**
   * The name of the at-rule (without the @).
   */
  name: String;
  /**
   * The prelude of the rule.
   */
  prelude: TokenOrValue[];
}
//#endregion
//#region ../../node_modules/.pnpm/lightningcss@1.32.0/node_modules/lightningcss/node/targets.d.ts
// This file is autogenerated by build-prefixes.js. DO NOT EDIT!
interface Targets {
  android?: number;
  chrome?: number;
  edge?: number;
  firefox?: number;
  ie?: number;
  ios_saf?: number;
  opera?: number;
  safari?: number;
  samsung?: number;
}
//#endregion
//#region ../../node_modules/.pnpm/lightningcss@1.32.0/node_modules/lightningcss/node/index.d.ts
interface TransformOptions<C extends CustomAtRules> {
  /** The filename being transformed. Used for error messages and source maps. */
  filename: string;
  /** The source code to transform. */
  code: Uint8Array;
  /** Whether to enable minification. */
  minify?: boolean;
  /** Whether to output a source map. */
  sourceMap?: boolean;
  /** An input source map to extend. */
  inputSourceMap?: string;
  /**
   * An optional project root path, used as the source root in the output source map.
   * Also used to generate relative paths for sources used in CSS module hashes.
   */
  projectRoot?: string;
  /** The browser targets for the generated code. */
  targets?: Targets;
  /** Features that should always be compiled, even when supported by targets. */
  include?: number;
  /** Features that should never be compiled, even when unsupported by targets. */
  exclude?: number;
  /** Whether to enable parsing various draft syntax. */
  drafts?: Drafts;
  /** Whether to enable various non-standard syntax. */
  nonStandard?: NonStandard;
  /** Whether to compile this file as a CSS module. */
  cssModules?: boolean | CSSModulesConfig;
  /**
   * Whether to analyze dependencies (e.g. `@import` and `url()`).
   * When enabled, `@import` rules are removed, and `url()` dependencies
   * are replaced with hashed placeholders that can be replaced with the final
   * urls later (after bundling). Dependencies are returned as part of the result.
   */
  analyzeDependencies?: boolean | DependencyOptions;
  /**
   * Replaces user action pseudo classes with class names that can be applied from JavaScript.
   * This is useful for polyfills, for example.
   */
  pseudoClasses?: PseudoClasses;
  /**
   * A list of class names, ids, and custom identifiers (e.g. @keyframes) that are known
   * to be unused. These will be removed during minification. Note that these are not
   * selectors but individual names (without any . or # prefixes).
   */
  unusedSymbols?: string[];
  /**
   * Whether to ignore invalid rules and declarations rather than erroring.
   * When enabled, warnings are returned, and the invalid rule or declaration is
   * omitted from the output code.
   */
  errorRecovery?: boolean;
  /**
   * An AST visitor object. This allows custom transforms or analysis to be implemented in JavaScript.
   * Multiple visitors can be composed into one using the `composeVisitors` function.
   * For optimal performance, visitors should be as specific as possible about what types of values
   * they care about so that JavaScript has to be called as little as possible.
   */
  visitor?: Visitor<C> | VisitorFunction<C>;
  /**
   * Defines how to parse custom CSS at-rules. Each at-rule can have a prelude, defined using a CSS
   * [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-strings), and
   * a block body. The body can be a declaration list, rule list, or style block as defined in the
   * [css spec](https://drafts.csswg.org/css-syntax/#declaration-rule-list).
   */
  customAtRules?: C;
}
// This is a hack to make TS still provide autocomplete for `property` vs. just making it `string`.
type PropertyStart = '-' | '_' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
type ReturnedDeclaration = Declaration | {
  /** The property name. */property: `${PropertyStart}${string}`; /** The raw string value for the declaration. */
  raw: string;
};
type ReturnedMediaQuery = MediaQuery | {
  /** The raw string value for the media query. */raw: string;
};
type FindByType<Union, Name> = Union extends {
  type: Name;
} ? Union : never;
type ReturnedRule = Rule<ReturnedDeclaration, ReturnedMediaQuery>;
type RequiredValue<Rule> = Rule extends {
  value: object;
} ? Rule['value'] extends StyleRule ? Rule & {
  value: Required<StyleRule> & {
    declarations: Required<DeclarationBlock>;
  };
} : Rule & {
  value: Required<Rule['value']>;
} : Rule;
type RuleVisitor<R = RequiredValue<Rule>> = ((rule: R) => ReturnedRule | ReturnedRule[] | void);
type MappedRuleVisitors = { [Name in Exclude<Rule['type'], 'unknown' | 'custom'>]?: RuleVisitor<RequiredValue<FindByType<Rule, Name>>> };
type UnknownVisitors<T> = {
  [name: string]: RuleVisitor<T>;
};
type CustomVisitors<T extends CustomAtRules> = { [Name in keyof T]?: RuleVisitor<CustomAtRule<Name, T[Name]>> };
type AnyCustomAtRule<C extends CustomAtRules> = { [Key in keyof C]: CustomAtRule<Key, C[Key]> }[keyof C];
type RuleVisitors<C extends CustomAtRules> = MappedRuleVisitors & {
  unknown?: UnknownVisitors<UnknownAtRule> | Omit<RuleVisitor<UnknownAtRule>, keyof CallableFunction>;
  custom?: CustomVisitors<C> | Omit<RuleVisitor<AnyCustomAtRule<C>>, keyof CallableFunction>;
};
type PreludeTypes = Exclude<ParsedComponent['type'], 'literal' | 'repeated' | 'token'>;
type SyntaxString = `<${PreludeTypes}>` | `<${PreludeTypes}>+` | `<${PreludeTypes}>#` | (string & {});
type ComponentTypes = { [Key in PreludeTypes as `<${Key}>`]: FindByType<ParsedComponent, Key> };
type Repetitions = { [Key in PreludeTypes as `<${Key}>+` | `<${Key}>#`]: {
  type: "repeated";
  value: {
    components: FindByType<ParsedComponent, Key>[];
    multiplier: Multiplier;
  };
} };
type MappedPrelude = ComponentTypes & Repetitions;
type MappedBody<P extends CustomAtRuleDefinition['body']> = P extends 'style-block' ? 'rule-list' : P;
interface CustomAtRule<N, R extends CustomAtRuleDefinition> {
  name: N;
  prelude: R['prelude'] extends keyof MappedPrelude ? MappedPrelude[R['prelude']] : ParsedComponent;
  body: FindByType<CustomAtRuleBody, MappedBody<R['body']>>;
  loc: Location2;
}
type CustomAtRuleBody = {
  type: 'declaration-list';
  value: Required<DeclarationBlock>;
} | {
  type: 'rule-list';
  value: RequiredValue<Rule>[];
};
type FindProperty<Union, Name> = Union extends {
  property: Name;
} ? Union : never;
type DeclarationVisitor<P = Declaration> = ((property: P) => ReturnedDeclaration | ReturnedDeclaration[] | void);
type MappedDeclarationVisitors = { [Name in Exclude<Declaration['property'], 'unparsed' | 'custom'>]?: DeclarationVisitor<FindProperty<Declaration, Name> | FindProperty<Declaration, 'unparsed'>> };
type CustomPropertyVisitors = {
  [name: string]: DeclarationVisitor<CustomProperty>;
};
type DeclarationVisitors = MappedDeclarationVisitors & {
  custom?: CustomPropertyVisitors | DeclarationVisitor<CustomProperty>;
};
interface RawValue {
  /** A raw string value which will be parsed like CSS. */
  raw: string;
}
type TokenReturnValue = TokenOrValue | TokenOrValue[] | RawValue | void;
type TokenVisitor = (token: Token) => TokenReturnValue;
type VisitableTokenTypes = 'ident' | 'at-keyword' | 'hash' | 'id-hash' | 'string' | 'number' | 'percentage' | 'dimension';
type TokenVisitors = { [Name in VisitableTokenTypes]?: (token: FindByType<Token, Name>) => TokenReturnValue };
type FunctionVisitor = (fn: Function) => TokenReturnValue;
type EnvironmentVariableVisitor = (env: EnvironmentVariable) => TokenReturnValue;
type EnvironmentVariableVisitors = {
  [name: string]: EnvironmentVariableVisitor;
};
interface Visitor<C extends CustomAtRules> {
  StyleSheet?(stylesheet: StyleSheet): StyleSheet<ReturnedDeclaration, ReturnedMediaQuery> | void;
  StyleSheetExit?(stylesheet: StyleSheet): StyleSheet<ReturnedDeclaration, ReturnedMediaQuery> | void;
  Rule?: RuleVisitor | RuleVisitors<C>;
  RuleExit?: RuleVisitor | RuleVisitors<C>;
  Declaration?: DeclarationVisitor | DeclarationVisitors;
  DeclarationExit?: DeclarationVisitor | DeclarationVisitors;
  Url?(url: Url): Url | void;
  Color?(color: CssColor): CssColor | void;
  Image?(image: Image): Image | void;
  ImageExit?(image: Image): Image | void;
  Length?(length: LengthValue): LengthValue | void;
  Angle?(angle: Angle): Angle | void;
  Ratio?(ratio: Ratio): Ratio | void;
  Resolution?(resolution: Resolution): Resolution | void;
  Time?(time: Time): Time | void;
  CustomIdent?(ident: string): string | void;
  DashedIdent?(ident: string): string | void;
  MediaQuery?(query: MediaQuery): ReturnedMediaQuery | ReturnedMediaQuery[] | void;
  MediaQueryExit?(query: MediaQuery): ReturnedMediaQuery | ReturnedMediaQuery[] | void;
  SupportsCondition?(condition: SupportsCondition): SupportsCondition;
  SupportsConditionExit?(condition: SupportsCondition): SupportsCondition;
  Selector?(selector: Selector): Selector | Selector[] | void;
  Token?: TokenVisitor | TokenVisitors;
  Function?: FunctionVisitor | {
    [name: string]: FunctionVisitor;
  };
  FunctionExit?: FunctionVisitor | {
    [name: string]: FunctionVisitor;
  };
  Variable?(variable: Variable): TokenReturnValue;
  VariableExit?(variable: Variable): TokenReturnValue;
  EnvironmentVariable?: EnvironmentVariableVisitor | EnvironmentVariableVisitors;
  EnvironmentVariableExit?: EnvironmentVariableVisitor | EnvironmentVariableVisitors;
}
type VisitorDependency = FileDependency | GlobDependency;
interface VisitorOptions {
  addDependency: (dep: VisitorDependency) => void;
}
type VisitorFunction<C extends CustomAtRules> = (options: VisitorOptions) => Visitor<C>;
interface CustomAtRules {
  [name: string]: CustomAtRuleDefinition;
}
interface CustomAtRuleDefinition {
  /**
   * Defines the syntax for a custom at-rule prelude. The value should be a
   * CSS [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-strings)
   * representing the types of values that are accepted. This property may be omitted or
   * set to null to indicate that no prelude is accepted.
   */
  prelude?: SyntaxString | null;
  /**
   * Defines the type of body contained within the at-rule block.
   *   - declaration-list: A CSS declaration list, as in a style rule.
   *   - rule-list: A list of CSS rules, as supported within a non-nested
   *       at-rule such as `@media` or `@supports`.
   *   - style-block: Both a declaration list and rule list, as accepted within
   *       a nested at-rule within a style rule (e.g. `@media` inside a style rule
   *       with directly nested declarations).
   */
  body?: 'declaration-list' | 'rule-list' | 'style-block' | null;
}
interface DependencyOptions {
  /** Whether to preserve `@import` rules rather than removing them. */
  preserveImports?: boolean;
}
interface Drafts {
  /** Whether to enable @custom-media rules. */
  customMedia?: boolean;
}
interface NonStandard {
  /** Whether to enable the non-standard >>> and /deep/ selector combinators used by Angular and Vue. */
  deepSelectorCombinator?: boolean;
}
interface PseudoClasses {
  hover?: string;
  active?: string;
  focus?: string;
  focusVisible?: string;
  focusWithin?: string;
}
interface CSSModulesConfig {
  /** The pattern to use when renaming class names and other identifiers. Default is `[hash]_[local]`. */
  pattern?: string;
  /** Whether to rename dashed identifiers, e.g. custom properties. */
  dashedIdents?: boolean;
  /** Whether to enable hashing for `@keyframes`. */
  animation?: boolean;
  /** Whether to enable hashing for CSS grid identifiers. */
  grid?: boolean;
  /** Whether to enable hashing for `@container` names. */
  container?: boolean;
  /** Whether to enable hashing for custom identifiers. */
  customIdents?: boolean;
  /** Whether to require at least one class or id selector in each rule. */
  pure?: boolean;
}
interface FileDependency {
  type: 'file';
  filePath: string;
}
interface GlobDependency {
  type: 'glob';
  glob: string;
}
//#endregion
//#region ../../node_modules/.pnpm/@tsdown+css@0.21.2_jiti@2.6.1_postcss-import@16.1.1_postcss@8.5.8__postcss@8.5.8_sass-e_5b37bea2f024dcde9918b4daf7eea71b/node_modules/@tsdown/css/dist/index.d.mts
//#region src/options.d.ts
type LightningCSSOptions = Omit<TransformOptions<any>, "filename" | "code">;
interface CssOptions {
  /**
  * Enable/disable CSS code splitting.
  * When set to `false`, all CSS in the entire project will be extracted into a single CSS file named by {@link fileName}.
  * When set to `true`, CSS imported in async JS chunks will be preserved as chunks.
  * @default false
  */
  splitting?: boolean;
  /**
  * Specify the name of the CSS file generated when `splitting` is `false`.
  * @default 'style.css'
  */
  fileName?: string;
  /**
  * Set the target environment for CSS syntax lowering.
  * Accepts esbuild-style target strings (e.g., `'chrome99'`, `'safari16.2'`).
  * Defaults to the top-level `target` option.
  *
  * @see https://vite.dev/config/build-options#build-csstarget
  */
  target?: string | string[] | false;
  /**
  * Options for CSS preprocessors (Sass/Less/Stylus).
  *
  * In addition to options specific to each processor, `additionalData` option
  * can be used to inject extra code for each style content.
  */
  preprocessorOptions?: PreprocessorOptions;
  /**
  * Enable/disable CSS minification.
  *
  * @default false
  */
  minify?: boolean;
  /**
  * Lightning CSS options for CSS syntax lowering and transformations.
  */
  lightningcss?: LightningCSSOptions;
  /**
  * PostCSS configuration.
  *
  * - `string`: Path to the directory to search for PostCSS config files.
  * - `object`: Inline PostCSS options with optional `plugins` array.
  * - Omitted: Auto-detect PostCSS config from the project root.
  *
  * Only used when `transformer` is `'postcss'`.
  * Requires `postcss` to be installed.
  *
  * @see https://github.com/postcss/postcss
  */
  postcss?: PostCSSOptions;
  /**
  * When enabled, JS output preserves import statements pointing to emitted CSS files.
  * Consumers of the library will automatically import the CSS alongside the JS.
  *
  * @default false
  */
  inject?: boolean;
  /**
  * CSS transformer to use. Controls how CSS is processed:
  *
  * - `'lightningcss'` (default): `@import` handled by Lightning CSS
  *   `bundleAsync()`, PostCSS is **not** used at all.
  * - `'postcss'`: `@import` handled by `postcss-import`,
  *   PostCSS plugins applied, Lightning CSS used only for final
  *   targets/minify transform.
  *
  * @default 'lightningcss'
  * @see https://vite.dev/config/shared-options#css-transformer
  */
  transformer?: "postcss" | "lightningcss";
}
type PostCSSOptions = string | (Record<string, any> & {
  plugins?: any[];
});
interface PreprocessorOptions {
  scss?: SassPreprocessorOptions;
  sass?: SassPreprocessorOptions;
  less?: LessPreprocessorOptions;
  styl?: StylusPreprocessorOptions;
  stylus?: StylusPreprocessorOptions;
}
type PreprocessorAdditionalDataResult = string | {
  content: string;
  map?: any;
};
type PreprocessorAdditionalData = string | ((source: string, filename: string) => PreprocessorAdditionalDataResult | Promise<PreprocessorAdditionalDataResult>);
interface SassPreprocessorOptions {
  additionalData?: PreprocessorAdditionalData;
  [key: string]: any;
}
interface LessPreprocessorOptions {
  additionalData?: PreprocessorAdditionalData;
  math?: any;
  paths?: string[];
  plugins?: any[];
  [key: string]: any;
}
interface StylusPreprocessorOptions {
  additionalData?: PreprocessorAdditionalData;
  define?: Record<string, any>;
  paths?: string[];
  [key: string]: any;
}
//#endregion
//#region ../../node_modules/.pnpm/get-tsconfig@4.13.6/node_modules/get-tsconfig/dist/index.d.cts
declare namespace TsConfigJson {
  namespace CompilerOptions {
    type JSX = 'preserve' | 'react' | 'react-jsx' | 'react-jsxdev' | 'react-native';
    type Module = 'CommonJS' | 'AMD' | 'System' | 'UMD' | 'ES6' | 'ES2015' | 'ES2020' | 'ES2022' | 'ESNext' | 'Node16' | 'Node18' | 'Node20' | 'NodeNext' | 'Preserve' | 'None' // Lowercase alternatives
    | 'commonjs' | 'amd' | 'system' | 'umd' | 'es6' | 'es2015' | 'es2020' | 'es2022' | 'esnext' | 'node16' | 'node18' | 'node20' | 'nodenext' | 'preserve' | 'none';
    type NewLine = 'CRLF' | 'LF' // Lowercase alternatives
    | 'crlf' | 'lf';
    type Target = 'ES3' | 'ES5' | 'ES6' | 'ES2015' | 'ES2016' | 'ES2017' | 'ES2018' | 'ES2019' | 'ES2020' | 'ES2021' | 'ES2022' | 'ES2023' | 'ES2024' | 'ESNext' // Lowercase alternatives
    | 'es3' | 'es5' | 'es6' | 'es2015' | 'es2016' | 'es2017' | 'es2018' | 'es2019' | 'es2020' | 'es2021' | 'es2022' | 'es2023' | 'es2024' | 'esnext';
    type Lib = 'ES5' | 'ES6' | 'ES7' | 'ES2015' | 'ES2015.Collection' | 'ES2015.Core' | 'ES2015.Generator' | 'ES2015.Iterable' | 'ES2015.Promise' | 'ES2015.Proxy' | 'ES2015.Reflect' | 'ES2015.Symbol.WellKnown' | 'ES2015.Symbol' | 'ES2016' | 'ES2016.Array.Include' | 'ES2017' | 'ES2017.ArrayBuffer' | 'ES2017.Date' | 'ES2017.Intl' | 'ES2017.Object' | 'ES2017.SharedMemory' | 'ES2017.String' | 'ES2017.TypedArrays' | 'ES2018' | 'ES2018.AsyncGenerator' | 'ES2018.AsyncIterable' | 'ES2018.Intl' | 'ES2018.Promise' | 'ES2018.Regexp' | 'ES2019' | 'ES2019.Array' | 'ES2019.Intl' | 'ES2019.Object' | 'ES2019.String' | 'ES2019.Symbol' | 'ES2020' | 'ES2020.BigInt' | 'ES2020.Date' | 'ES2020.Intl' | 'ES2020.Number' | 'ES2020.Promise' | 'ES2020.SharedMemory' | 'ES2020.String' | 'ES2020.Symbol.WellKnown' | 'ES2021' | 'ES2021.Intl' | 'ES2021.Promise' | 'ES2021.String' | 'ES2021.WeakRef' | 'ES2022' | 'ES2022.Array' | 'ES2022.Error' | 'ES2022.Intl' | 'ES2022.Object' | 'ES2022.RegExp' | 'ES2022.SharedMemory' | 'ES2022.String' | 'ES2023' | 'ES2023.Array' | 'ES2023.Collection' | 'ES2023.Intl' | 'ES2024' | 'ES2024.ArrayBuffer' | 'ES2024.Collection' | 'ES2024.Object' | 'ES2024.Promise' | 'ES2024.Regexp' | 'ES2024.SharedMemory' | 'ES2024.String' | 'ESNext' | 'ESNext.Array' | 'ESNext.AsyncIterable' | 'ESNext.BigInt' | 'ESNext.Collection' | 'ESNext.Decorators' | 'ESNext.Disposable' | 'ESNext.Error' | 'ESNext.Intl' | 'ESNext.Iterator' | 'ESNext.Object' | 'ESNext.Promise' | 'ESNext.Regexp' | 'ESNext.String' | 'ESNext.Symbol' | 'ESNext.WeakRef' | 'DOM' | 'DOM.AsyncIterable' | 'DOM.Iterable' | 'Decorators' | 'Decorators.Legacy' | 'ScriptHost' | 'WebWorker' | 'WebWorker.AsyncIterable' | 'WebWorker.ImportScripts' | 'WebWorker.Iterable' // Lowercase alternatives
    | 'es5' | 'es6' | 'es7' | 'es2015' | 'es2015.collection' | 'es2015.core' | 'es2015.generator' | 'es2015.iterable' | 'es2015.promise' | 'es2015.proxy' | 'es2015.reflect' | 'es2015.symbol.wellknown' | 'es2015.symbol' | 'es2016' | 'es2016.array.include' | 'es2017' | 'es2017.arraybuffer' | 'es2017.date' | 'es2017.intl' | 'es2017.object' | 'es2017.sharedmemory' | 'es2017.string' | 'es2017.typedarrays' | 'es2018' | 'es2018.asyncgenerator' | 'es2018.asynciterable' | 'es2018.intl' | 'es2018.promise' | 'es2018.regexp' | 'es2019' | 'es2019.array' | 'es2019.intl' | 'es2019.object' | 'es2019.string' | 'es2019.symbol' | 'es2020' | 'es2020.bigint' | 'es2020.date' | 'es2020.intl' | 'es2020.number' | 'es2020.promise' | 'es2020.sharedmemory' | 'es2020.string' | 'es2020.symbol.wellknown' | 'es2021' | 'es2021.intl' | 'es2021.promise' | 'es2021.string' | 'es2021.weakref' | 'es2022' | 'es2022.array' | 'es2022.error' | 'es2022.intl' | 'es2022.object' | 'es2022.regexp' | 'es2022.sharedmemory' | 'es2022.string' | 'es2023' | 'es2023.array' | 'es2023.collection' | 'es2023.intl' | 'es2024' | 'es2024.arraybuffer' | 'es2024.collection' | 'es2024.object' | 'es2024.promise' | 'es2024.regexp' | 'es2024.sharedmemory' | 'es2024.string' | 'esnext' | 'esnext.array' | 'esnext.asynciterable' | 'esnext.bigint' | 'esnext.collection' | 'esnext.decorators' | 'esnext.disposable' | 'esnext.error' | 'esnext.intl' | 'esnext.iterator' | 'esnext.object' | 'esnext.promise' | 'esnext.regexp' | 'esnext.string' | 'esnext.symbol' | 'esnext.weakref' | 'dom' | 'dom.asynciterable' | 'dom.iterable' | 'decorators' | 'decorators.legacy' | 'scripthost' | 'webworker' | 'webworker.asynciterable' | 'webworker.importscripts' | 'webworker.iterable';
    type Plugin = {
      /**
      Plugin name.
      */
      name: string;
    };
    type ImportsNotUsedAsValues = 'remove' | 'preserve' | 'error';
    type FallbackPolling = 'fixedPollingInterval' | 'priorityPollingInterval' | 'dynamicPriorityPolling' | 'fixedInterval' | 'priorityInterval' | 'dynamicPriority' | 'fixedChunkSize';
    type WatchDirectory = 'useFsEvents' | 'fixedPollingInterval' | 'dynamicPriorityPolling' | 'fixedChunkSizePolling';
    type WatchFile = 'fixedPollingInterval' | 'priorityPollingInterval' | 'dynamicPriorityPolling' | 'useFsEvents' | 'useFsEventsOnParentDirectory' | 'fixedChunkSizePolling';
    type ModuleResolution = 'classic' | 'node' | 'node10' | 'node16' | 'nodenext' | 'bundler' // Pascal-cased alternatives
    | 'Classic' | 'Node' | 'Node10' | 'Node16' | 'NodeNext' | 'Bundler';
    type ModuleDetection = 'auto' | 'legacy' | 'force';
    type IgnoreDeprecations = '5.0';
  }
  type CompilerOptions = {
    /**
    The character set of the input files.
    	@default 'utf8'
    @deprecated This option will be removed in TypeScript 5.5.
    */
    charset?: string;
    /**
    Enables building for project references.
    	@default true
    */
    composite?: boolean;
    /**
    Generates corresponding d.ts files.
    	@default false
    */
    declaration?: boolean;
    /**
    Specify output directory for generated declaration files.
    */
    declarationDir?: string;
    /**
    Show diagnostic information.
    	@default false
    */
    diagnostics?: boolean;
    /**
    Reduce the number of projects loaded automatically by TypeScript.
    	@default false
    */
    disableReferencedProjectLoad?: boolean;
    /**
    Enforces using indexed accessors for keys declared using an indexed type.
    	@default false
    */
    noPropertyAccessFromIndexSignature?: boolean;
    /**
    Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.
    	@default false
    */
    emitBOM?: boolean;
    /**
    Only emit `.d.ts` declaration files.
    	@default false
    */
    emitDeclarationOnly?: boolean;
    /**
    Differentiate between undefined and not present when type checking.
    	@default false
    */
    exactOptionalPropertyTypes?: boolean;
    /**
    Enable incremental compilation.
    	@default `composite`
    */
    incremental?: boolean;
    /**
    Specify file to store incremental compilation information.
    	@default '.tsbuildinfo'
    */
    tsBuildInfoFile?: string;
    /**
    Emit a single file with source maps instead of having a separate file.
    	@default false
    */
    inlineSourceMap?: boolean;
    /**
    Emit the source alongside the sourcemaps within a single file.
    	Requires `--inlineSourceMap` to be set.
    	@default false
    */
    inlineSources?: boolean;
    /**
    Specify what JSX code is generated.
    	@default 'preserve'
    */
    jsx?: CompilerOptions.JSX;
    /**
    Specifies the object invoked for `createElement` and `__spread` when targeting `'react'` JSX emit.
    	@default 'React'
    */
    reactNamespace?: string;
    /**
    Specify the JSX factory function to use when targeting React JSX emit, e.g. `React.createElement` or `h`.
    	@default 'React.createElement'
    */
    jsxFactory?: string;
    /**
    Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.
    	@default 'React.Fragment'
    */
    jsxFragmentFactory?: string;
    /**
    Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.
    	@default 'react'
    */
    jsxImportSource?: string;
    /**
    Print names of files part of the compilation.
    	@default false
    */
    listFiles?: boolean;
    /**
    Specifies the location where debugger should locate map files instead of generated locations.
    */
    mapRoot?: string;
    /**
    Specify module code generation: 'None', 'CommonJS', 'AMD', 'System', 'UMD', 'ES6', 'ES2015' or 'ESNext'. Only 'AMD' and 'System' can be used in conjunction with `--outFile`. 'ES6' and 'ES2015' values may be used when targeting 'ES5' or lower.
    	@default ['ES3', 'ES5'].includes(target) ? 'CommonJS' : 'ES6'
    */
    module?: CompilerOptions.Module;
    /**
    Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6).
    	@default ['AMD', 'System', 'ES6'].includes(module) ? 'classic' : 'node'
    */
    moduleResolution?: CompilerOptions.ModuleResolution;
    /**
    Specifies the end of line sequence to be used when emitting files: 'crlf' (Windows) or 'lf' (Unix).
    	@default 'LF'
    */
    newLine?: CompilerOptions.NewLine;
    /**
    Disable full type checking (only critical parse and emit errors will be reported).
    	@default false
    */
    noCheck?: boolean;
    /**
    Do not emit output.
    	@default false
    */
    noEmit?: boolean;
    /**
    Do not generate custom helper functions like `__extends` in compiled output.
    	@default false
    */
    noEmitHelpers?: boolean;
    /**
    Do not emit outputs if any type checking errors were reported.
    	@default false
    */
    noEmitOnError?: boolean;
    /**
    Warn on expressions and declarations with an implied 'any' type.
    	@default false
    */
    noImplicitAny?: boolean;
    /**
    Raise error on 'this' expressions with an implied any type.
    	@default false
    */
    noImplicitThis?: boolean;
    /**
    Report errors on unused locals.
    	@default false
    */
    noUnusedLocals?: boolean;
    /**
    Report errors on unused parameters.
    	@default false
    */
    noUnusedParameters?: boolean;
    /**
    Do not include the default library file (lib.d.ts).
    	@default false
    */
    noLib?: boolean;
    /**
    Do not add triple-slash references or module import targets to the list of compiled files.
    	@default false
    */
    noResolve?: boolean;
    /**
    Disable strict checking of generic signatures in function types.
    	@default false
    @deprecated This option will be removed in TypeScript 5.5.
    */
    noStrictGenericChecks?: boolean;
    /**
    @deprecated use `skipLibCheck` instead.
    */
    skipDefaultLibCheck?: boolean;
    /**
    Skip type checking of declaration files.
    	@default false
    */
    skipLibCheck?: boolean;
    /**
    Concatenate and emit output to single file.
    */
    outFile?: string;
    /**
    Redirect output structure to the directory.
    */
    outDir?: string;
    /**
    Do not erase const enum declarations in generated code.
    	@default false
    */
    preserveConstEnums?: boolean;
    /**
    Do not resolve symlinks to their real path; treat a symlinked file like a real one.
    	@default false
    */
    preserveSymlinks?: boolean;
    /**
    Keep outdated console output in watch mode instead of clearing the screen.
    	@default false
    */
    preserveWatchOutput?: boolean;
    /**
    Stylize errors and messages using color and context (experimental).
    	@default true // Unless piping to another program or redirecting output to a file.
    */
    pretty?: boolean;
    /**
    Do not emit comments to output.
    	@default false
    */
    removeComments?: boolean;
    /**
    Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.
    	@default false
    */
    rewriteRelativeImportExtensions?: boolean;
    /**
    Specifies the root directory of input files.
    	Use to control the output directory structure with `--outDir`.
    */
    rootDir?: string;
    /**
    Unconditionally emit imports for unresolved files.
    	@default false
    */
    isolatedModules?: boolean;
    /**
    Require sufficient annotation on exports so other tools can trivially generate declaration files.
    	@default false
    */
    isolatedDeclarations?: boolean;
    /**
    Generates corresponding '.map' file.
    	@default false
    */
    sourceMap?: boolean;
    /**
    Specifies the location where debugger should locate TypeScript files instead of source locations.
    */
    sourceRoot?: string;
    /**
    Suppress excess property checks for object literals.
    	@default false
    @deprecated This option will be removed in TypeScript 5.5.
    */
    suppressExcessPropertyErrors?: boolean;
    /**
    Suppress noImplicitAny errors for indexing objects lacking index signatures.
    	@default false
    @deprecated This option will be removed in TypeScript 5.5.
    */
    suppressImplicitAnyIndexErrors?: boolean;
    /**
    Do not emit declarations for code that has an `@internal` annotation.
    */
    stripInternal?: boolean;
    /**
    Specify ECMAScript target version.
    	@default 'es3'
    */
    target?: CompilerOptions.Target;
    /**
    Default catch clause variables as `unknown` instead of `any`.
    	@default false
    */
    useUnknownInCatchVariables?: boolean;
    /**
    Watch input files.
    	@default false
    @deprecated Use watchOptions instead.
    */
    watch?: boolean;
    /**
    Specify the polling strategy to use when the system runs out of or doesn't support native file watchers.
    	@deprecated Use watchOptions.fallbackPolling instead.
    */
    fallbackPolling?: CompilerOptions.FallbackPolling;
    /**
    Specify the strategy for watching directories under systems that lack recursive file-watching functionality.
    	@default 'useFsEvents'
    @deprecated Use watchOptions.watchDirectory instead.
    */
    watchDirectory?: CompilerOptions.WatchDirectory;
    /**
    Specify the strategy for watching individual files.
    	@default 'useFsEvents'
    @deprecated Use watchOptions.watchFile instead.
    */
    watchFile?: CompilerOptions.WatchFile;
    /**
    Enables experimental support for ES7 decorators.
    	@default false
    */
    experimentalDecorators?: boolean;
    /**
    Emit design-type metadata for decorated declarations in source.
    	@default false
    */
    emitDecoratorMetadata?: boolean;
    /**
    Do not report errors on unused labels.
    	@default false
    */
    allowUnusedLabels?: boolean;
    /**
    Report error when not all code paths in function return a value.
    	@default false
    */
    noImplicitReturns?: boolean;
    /**
    Add `undefined` to a type when accessed using an index.
    	@default false
    */
    noUncheckedIndexedAccess?: boolean;
    /**
    Report error if failed to find a source file for a side effect import.
    	@default false
    */
    noUncheckedSideEffectImports?: boolean;
    /**
    Report errors for fallthrough cases in switch statement.
    	@default false
    */
    noFallthroughCasesInSwitch?: boolean;
    /**
    Ensure overriding members in derived classes are marked with an override modifier.
    	@default false
    */
    noImplicitOverride?: boolean;
    /**
    Do not report errors on unreachable code.
    	@default false
    */
    allowUnreachableCode?: boolean;
    /**
    Disallow inconsistently-cased references to the same file.
    	@default true
    */
    forceConsistentCasingInFileNames?: boolean;
    /**
    Emit a v8 CPU profile of the compiler run for debugging.
    	@default 'profile.cpuprofile'
    */
    generateCpuProfile?: string;
    /**
    Generates an event trace and a list of types.
    */
    generateTrace?: boolean;
    /**
    Base directory to resolve non-relative module names.
    */
    baseUrl?: string;
    /**
    Specify path mapping to be computed relative to baseUrl option.
    */
    paths?: Record<string, string[]>;
    /**
    List of TypeScript language server plugins to load.
    */
    plugins?: CompilerOptions.Plugin[];
    /**
    Specify list of root directories to be used when resolving modules.
    */
    rootDirs?: string[];
    /**
    Specify list of directories for type definition files to be included.
    */
    typeRoots?: string[];
    /**
    Type declaration files to be included in compilation.
    */
    types?: string[];
    /**
    Enable tracing of the name resolution process.
    	@default false
    */
    traceResolution?: boolean;
    /**
    Allow javascript files to be compiled.
    	@default false
    */
    allowJs?: boolean;
    /**
    Do not truncate error messages.
    	@default false
    */
    noErrorTruncation?: boolean;
    /**
    Allow default imports from modules with no default export. This does not affect code emit, just typechecking.
    	@default module === 'system' || esModuleInterop
    */
    allowSyntheticDefaultImports?: boolean;
    /**
    Do not emit `'use strict'` directives in module output.
    	@default false
    @deprecated This option will be removed in TypeScript 5.5.
    */
    noImplicitUseStrict?: boolean;
    /**
    Enable to list all emitted files.
    	@default false
    */
    listEmittedFiles?: boolean;
    /**
    Disable size limit for JavaScript project.
    	@default false
    */
    disableSizeLimit?: boolean;
    /**
    List of library files to be included in the compilation.
    */
    lib?: CompilerOptions.Lib[];
    /**
    Enable strict null checks.
    	@default false
    */
    strictNullChecks?: boolean;
    /**
    The maximum dependency depth to search under `node_modules` and load JavaScript files. Only applicable with `--allowJs`.
    	@default 0
    */
    maxNodeModuleJsDepth?: number;
    /**
    Import emit helpers (e.g. `__extends`, `__rest`, etc..) from tslib.
    	@default false
    */
    importHelpers?: boolean;
    /**
    Specify emit/checking behavior for imports that are only used for types.
    	@default 'remove'
    @deprecated Use `verbatimModuleSyntax` instead.
    */
    importsNotUsedAsValues?: CompilerOptions.ImportsNotUsedAsValues;
    /**
    Parse in strict mode and emit `'use strict'` for each source file.
    	@default false
    */
    alwaysStrict?: boolean;
    /**
    Enable all strict type checking options.
    	@default false
    */
    strict?: boolean;
    /**
    Enable stricter checking of of the `bind`, `call`, and `apply` methods on functions.
    	@default false
    */
    strictBindCallApply?: boolean;
    /**
    Provide full support for iterables in `for-of`, spread, and destructuring when targeting `ES5` or `ES3`.
    	@default false
    */
    downlevelIteration?: boolean;
    /**
    Report errors in `.js` files.
    	@default false
    */
    checkJs?: boolean;
    /**
    Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.
    	@default false
    */
    strictBuiltinIteratorReturn?: boolean;
    /**
    Disable bivariant parameter checking for function types.
    	@default false
    */
    strictFunctionTypes?: boolean;
    /**
    Ensure non-undefined class properties are initialized in the constructor.
    	@default false
    */
    strictPropertyInitialization?: boolean;
    /**
    Emit `__importStar` and `__importDefault` helpers for runtime Babel ecosystem compatibility and enable `--allowSyntheticDefaultImports` for typesystem compatibility.
    	@default false
    */
    esModuleInterop?: boolean;
    /**
    Allow accessing UMD globals from modules.
    	@default false
    */
    allowUmdGlobalAccess?: boolean;
    /**
    Resolve `keyof` to string valued property names only (no numbers or symbols).
    	@default false
    @deprecated This option will be removed in TypeScript 5.5.
    */
    keyofStringsOnly?: boolean;
    /**
    Emit ECMAScript standard class fields.
    	@default false
    */
    useDefineForClassFields?: boolean;
    /**
    Generates a sourcemap for each corresponding `.d.ts` file.
    	@default false
    */
    declarationMap?: boolean;
    /**
    Include modules imported with `.json` extension.
    	@default false
    */
    resolveJsonModule?: boolean;
    /**
    Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.
    	@default false
    */
    assumeChangesOnlyAffectDirectDependencies?: boolean;
    /**
    Output more detailed compiler performance information after building.
    	@default false
    */
    extendedDiagnostics?: boolean;
    /**
    Print names of files that are part of the compilation and then stop processing.
    	@default false
    */
    listFilesOnly?: boolean;
    /**
    Disable preferring source files instead of declaration files when referencing composite projects.
    	@default true if composite, false otherwise
    */
    disableSourceOfProjectReferenceRedirect?: boolean;
    /**
    Opt a project out of multi-project reference checking when editing.
    	@default false
    */
    disableSolutionSearching?: boolean;
    /**
    Print names of files which TypeScript sees as a part of your project and the reason they are part of the compilation.
    	@default false
    */
    explainFiles?: boolean;
    /**
    Preserve unused imported values in the JavaScript output that would otherwise be removed.
    	@default true
    @deprecated Use `verbatimModuleSyntax` instead.
    */
    preserveValueImports?: boolean;
    /**
    List of file name suffixes to search when resolving a module.
    */
    moduleSuffixes?: string[];
    /**
    Control what method is used to detect module-format JS files.
    	@default 'auto'
    */
    moduleDetection?: CompilerOptions.ModuleDetection;
    /**
    Allows TypeScript files to import each other with a TypeScript-specific extension like .ts, .mts, or .tsx.
    	@default false
    */
    allowImportingTsExtensions?: boolean;
    /**
    Forces TypeScript to consult the exports field of package.json files if it ever reads from a package in node_modules.
    	@default false
    */
    resolvePackageJsonExports?: boolean;
    /**
    Forces TypeScript to consult the imports field of package.json files when performing a lookup that starts with # from a file whose ancestor directory contains a package.json.
    	@default false
    */
    resolvePackageJsonImports?: boolean;
    /**
    Suppress errors for file formats that TypeScript does not understand.
    	@default false
    */
    allowArbitraryExtensions?: boolean;
    /**
    List of additional conditions that should succeed when TypeScript resolves from package.json.
    */
    customConditions?: string[];
    /**
    Anything that uses the type modifier is dropped entirely.
    	@default false
    */
    verbatimModuleSyntax?: boolean;
    /**
    Suppress deprecation warnings
    */
    ignoreDeprecations?: CompilerOptions.IgnoreDeprecations;
    /**
    Do not allow runtime constructs that are not part of ECMAScript.
    	@default false
    */
    erasableSyntaxOnly?: boolean;
    /**
    Enable lib replacement.
    	@default true
    */
    libReplacement?: boolean;
  };
  namespace WatchOptions {
    type WatchFileKind = 'FixedPollingInterval' | 'PriorityPollingInterval' | 'DynamicPriorityPolling' | 'FixedChunkSizePolling' | 'UseFsEvents' | 'UseFsEventsOnParentDirectory';
    type WatchDirectoryKind = 'UseFsEvents' | 'FixedPollingInterval' | 'DynamicPriorityPolling' | 'FixedChunkSizePolling';
    type PollingWatchKind = 'FixedInterval' | 'PriorityInterval' | 'DynamicPriority' | 'FixedChunkSize';
  }
  type WatchOptions = {
    /**
    Specify the strategy for watching individual files.
    	@default 'UseFsEvents'
    */
    watchFile?: WatchOptions.WatchFileKind | Lowercase<WatchOptions.WatchFileKind>;
    /**
    Specify the strategy for watching directories under systems that lack recursive file-watching functionality.
    	@default 'UseFsEvents'
    */
    watchDirectory?: WatchOptions.WatchDirectoryKind | Lowercase<WatchOptions.WatchDirectoryKind>;
    /**
    Specify the polling strategy to use when the system runs out of or doesn't support native file watchers.
    */
    fallbackPolling?: WatchOptions.PollingWatchKind | Lowercase<WatchOptions.PollingWatchKind>;
    /**
    Enable synchronous updates on directory watchers for platforms that don't support recursive watching natively.
    */
    synchronousWatchDirectory?: boolean;
    /**
    Specifies a list of directories to exclude from watch.
    */
    excludeDirectories?: string[];
    /**
    Specifies a list of files to exclude from watch.
    */
    excludeFiles?: string[];
  };
  /**
  Auto type (.d.ts) acquisition options for this project.
  */
  type TypeAcquisition = {
    /**
    Enable auto type acquisition.
    */
    enable?: boolean;
    /**
    Specifies a list of type declarations to be included in auto type acquisition. For example, `['jquery', 'lodash']`.
    */
    include?: string[];
    /**
    Specifies a list of type declarations to be excluded from auto type acquisition. For example, `['jquery', 'lodash']`.
    */
    exclude?: string[];
    /**
    Disable infering what types should be added based on filenames in a project.
    */
    disableFilenameBasedTypeAcquisition?: boolean;
  };
  type References = {
    /**
    A normalized path on disk.
    */
    path: string;
    /**
    The path as the user originally wrote it.
    */
    originalPath?: string;
    /**
    True if the output of this reference should be prepended to the output of this project.
    	Only valid for `--outFile` compilations.
    @deprecated This option will be removed in TypeScript 5.5.
    */
    prepend?: boolean;
    /**
    True if it is intended that this reference form a circularity.
    */
    circular?: boolean;
  };
}
/**
Type for [TypeScript's `tsconfig.json` file](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) (TypeScript 3.7).

@category File
*/
type TsConfigJson = {
  /**
  Instructs the TypeScript compiler how to compile `.ts` files.
  */
  compilerOptions?: TsConfigJson.CompilerOptions;
  /**
  Instructs the TypeScript compiler how to watch files.
  */
  watchOptions?: TsConfigJson.WatchOptions;
  /**
  Auto type (.d.ts) acquisition options for this project.
  */
  typeAcquisition?: TsConfigJson.TypeAcquisition;
  /**
  Enable Compile-on-Save for this project.
  */
  compileOnSave?: boolean;
  /**
  Path to base configuration file to inherit from.
  */
  extends?: string | string[];
  /**
  If no `files` or `include` property is present in a `tsconfig.json`, the compiler defaults to including all files in the containing directory and subdirectories except those specified by `exclude`. When a `files` property is specified, only those files and those specified by `include` are included.
  */
  files?: string[];
  /**
  Specifies a list of files to be excluded from compilation. The `exclude` property only affects the files included via the `include` property and not the `files` property.
  	Glob patterns require TypeScript version 2.0 or later.
  */
  exclude?: string[];
  /**
  Specifies a list of glob patterns that match files to be included in compilation.
  	If no `files` or `include` property is present in a `tsconfig.json`, the compiler defaults to including all files in the containing directory and subdirectories except those specified by `exclude`.
  */
  include?: string[];
  /**
  Referenced projects.
  */
  references?: TsConfigJson.References[];
};
//#endregion
//#region ../../node_modules/.pnpm/rolldown-plugin-dts@0.22.5_@typescript+native-preview@7.0.0-dev.20260122.2_oxc-resolver_ee01c189cef60d67143f173de4d10478/node_modules/rolldown-plugin-dts/dist/index.d.mts
//#region src/options.d.ts
interface GeneralOptions {
  /**
  * The directory in which the plugin will search for the `tsconfig.json` file.
  */
  cwd?: string;
  /**
  * Set to `true` if your entry files are `.d.ts` files instead of `.ts` files.
  *
  * When enabled, the plugin will skip generating a `.d.ts` file for the entry point.
  */
  dtsInput?: boolean;
  /**
  * If `true`, the plugin will emit only `.d.ts` files and remove all other output chunks.
  *
  * This is especially useful when generating `.d.ts` files for the CommonJS format as part of a separate build step.
  */
  emitDtsOnly?: boolean;
  /**
  * The path to the `tsconfig.json` file.
  *
  * If set to `false`, the plugin will ignore any `tsconfig.json` file.
  * You can still specify `compilerOptions` directly in the options.
  *
  * @default 'tsconfig.json'
  */
  tsconfig?: string | boolean;
  /**
  * Pass a raw `tsconfig.json` object directly to the plugin.
  *
  * @see https://www.typescriptlang.org/tsconfig
  */
  tsconfigRaw?: Omit<TsConfigJson, "compilerOptions">;
  /**
  * Override the `compilerOptions` specified in `tsconfig.json`.
  *
  * @see https://www.typescriptlang.org/tsconfig/#compilerOptions
  */
  compilerOptions?: TsConfigJson.CompilerOptions;
  /**
  * If `true`, the plugin will generate declaration maps (`.d.ts.map`) for `.d.ts` files.
  */
  sourcemap?: boolean;
  /**
  * Specifies a resolver to resolve type definitions, especially for `node_modules`.
  *
  * - `'oxc'`: Uses Oxc's module resolution, which is faster and more efficient.
  * - `'tsc'`: Uses TypeScript's native module resolution, which may be more compatible with complex setups, but slower.
  *
  * @default 'oxc'
  */
  resolver?: "oxc" | "tsc";
  /**
  * Determines how the default export is emitted.
  *
  * If set to `true`, and you are only exporting a single item using `export default ...`,
  * the output will use `export = ...` instead of the standard ES module syntax.
  * This is useful for compatibility with CommonJS.
  */
  cjsDefault?: boolean;
  /**
  * Indicates whether the generated `.d.ts` files have side effects.
  * - If set to `true`, Rolldown will treat the `.d.ts` files as having side effects during tree-shaking.
  * - If set to `false`, Rolldown may consider the `.d.ts` files as side-effect-free, potentially removing them if they are not imported.
  *
  * @default false
  */
  sideEffects?: boolean;
}
interface TscOptions {
  /**
  * Build mode for the TypeScript compiler:
  *
  * - If `true`, the plugin will use [`tsc -b`](https://www.typescriptlang.org/docs/handbook/project-references.html#build-mode-for-typescript) to build the project and all referenced projects before emitting `.d.ts` files.
  * - If `false`, the plugin will use [`tsc`](https://www.typescriptlang.org/docs/handbook/compiler-options.html) to emit `.d.ts` files without building referenced projects.
  *
  * @default false
  */
  build?: boolean;
  /**
  * If your tsconfig.json has
  * [`references`](https://www.typescriptlang.org/tsconfig/#references) option,
  * `rolldown-plugin-dts` will use [`tsc
  * -b`](https://www.typescriptlang.org/docs/handbook/project-references.html#build-mode-for-typescript)
  * to build the project and all referenced projects before emitting `.d.ts`
  * files.
  *
  * In such case, if this option is `true`, `rolldown-plugin-dts` will write
  * down all built files into your disk, including
  * [`.tsbuildinfo`](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile)
  * and other built files. This is equivalent to running `tsc -b` in your
  * project.
  *
  * Otherwise, if this option is `false`, `rolldown-plugin-dts` will write
  * built files only into memory and leave a small footprint in your disk.
  *
  * Enabling this option will decrease the build time by caching previous build
  * results. This is helpful when you have a large project with multiple
  * referenced projects.
  *
  * By default, `incremental` is `true` if your tsconfig has
  * [`incremental`](https://www.typescriptlang.org/tsconfig/#incremental) or
  * [`tsBuildInfoFile`](https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile)
  * enabled.
  *
  * This option is only used when {@link Options.oxc} is
  * `false`.
  */
  incremental?: boolean;
  /**
  * If `true`, the plugin will generate `.d.ts` files using `vue-tsc`.
  */
  vue?: boolean;
  /**
  * If `true`, the plugin will generate `.d.ts` files using `@ts-macro/tsc`.
  */
  tsMacro?: boolean;
  /**
  * If `true`, the plugin will launch a separate process for `tsc` or `vue-tsc`.
  * This enables processing multiple projects in parallel.
  */
  parallel?: boolean;
  /**
  * If `true`, the plugin will prepare all files listed in `tsconfig.json` for `tsc` or `vue-tsc`.
  *
  * This is especially useful when you have a single `tsconfig.json` for multiple projects in a monorepo.
  */
  eager?: boolean;
  /**
  * If `true`, the plugin will create a new isolated context for each build,
  * ensuring that previously generated `.d.ts` code and caches are not reused.
  *
  * By default, the plugin may reuse internal caches or incremental build artifacts
  * to speed up repeated builds. Enabling this option forces a clean context,
  * guaranteeing that all type definitions are generated from scratch.
  *
  * @default false
  */
  newContext?: boolean;
  /**
  * If `true`, the plugin will emit `.d.ts` files for `.js` files as well.
  * This is useful when you want to generate type definitions for JavaScript files with JSDoc comments.
  *
  * Enabled by default when `allowJs` in compilerOptions is `true`.
  * This option is only used when {@link Options.oxc} is
  * `false`.
  */
  emitJs?: boolean;
}
interface Options extends GeneralOptions, TscOptions {
  /**
  * If `true`, the plugin will generate `.d.ts` files using Oxc,
  * which is significantly faster than the TypeScript compiler.
  *
  * This option is automatically enabled when `isolatedDeclarations` in `compilerOptions` is set to `true`.
  */
  oxc?: boolean | Omit<IsolatedDeclarationsOptions, "sourcemap">;
  /**
  * **[Experimental]** Enables DTS generation using `tsgo`.
  *
  * To use this option, make sure `@typescript/native-preview` is installed as a dependency,
  * or provide a custom path to the `tsgo` binary using the `path` option.
  *
  * **Note:** This option is not yet recommended for production environments.
  * `tsconfigRaw` and `isolatedDeclarations` options will be ignored when this option is enabled.
  *
  *
  * ```ts
  * // Use tsgo from `@typescript/native-preview` dependency
  * tsgo: true
  *
  * // Use custom tsgo path (e.g., managed by Nix)
  * tsgo: { path: '/path/to/tsgo' }
  * ```
  */
  tsgo?: boolean | TsgoOptions;
}
interface TsgoOptions {
  enabled?: boolean;
  /**
  * Custom path to the `tsgo` binary.
  */
  path?: string;
}
//#endregion
//#region ../../node_modules/.pnpm/@vitejs+devtools@0.0.0-alpha.34_@pnpm+logger@1001.0.1_typescript@5.9.3_vite@packages+core_vue@3.5.27_typescript@5.9.3_/node_modules/@vitejs/devtools/dist/cli-commands.d.ts
//#region src/node/cli-commands.d.ts
interface StartOptions {
  root?: string;
  config?: string;
  host: string;
  port?: string | number;
  open?: boolean;
}
//#endregion
//#region ../../node_modules/.pnpm/@tsdown+exe@0.21.2_tsdown@0.21.2/node_modules/@tsdown/exe/dist/index.d.mts
//#region src/platform.d.ts
type ExePlatform = "win" | "darwin" | "linux";
type ExeArch = "x64" | "arm64";
interface ExeTarget {
  platform: ExePlatform;
  arch: ExeArch;
  /**
  * Node.js version to use for the executable.
  *
  * Accepts a valid semver string (e.g., `"25.7.0"`), or the special values
  * `"latest"` / `"latest-lts"` which resolve the version automatically from
  * {@link https://nodejs.org/dist/index.json}.
  *
  * The minimum required version is 25.7.0, which is when SEA support was added to Node.js.
  */
  nodeVersion: (string & {}) | "latest" | "latest-lts" | `${string}.${string}.${string}`;
}
interface ExeExtensionOptions {
  /**
  * Cross-platform targets for building executables.
  * Requires `@tsdown/exe` to be installed.
  * When specified, builds an executable for each target platform/arch combination.
  *
  * @example
  * ```ts
  * targets: [
  *   { platform: 'linux', arch: 'x64', nodeVersion: '25.7.0' },
  *   { platform: 'darwin', arch: 'arm64', nodeVersion: '25.7.0' },
  *   { platform: 'win', arch: 'x64', nodeVersion: '25.7.0' },
  * ]
  * ```
  */
  targets?: ExeTarget[];
}
//#endregion
//#region ../../node_modules/.pnpm/@arethetypeswrong+core@0.18.2/node_modules/@arethetypeswrong/core/dist/checkPackage.d.ts
interface CheckPackageOptions {
  /**
   * Exhaustive list of entrypoints to check. The package root is `"."`.
   * Specifying this option disables automatic entrypoint discovery,
   * and overrides the `includeEntrypoints` and `excludeEntrypoints` options.
   */
  entrypoints?: string[];
  /**
   * Entrypoints to check in addition to automatically discovered ones.
   */
  includeEntrypoints?: string[];
  /**
   * Entrypoints to exclude from checking.
   */
  excludeEntrypoints?: (string | RegExp)[];
  /**
   * Whether to automatically consider all published files as entrypoints
   * in the absence of any other detected or configured entrypoints.
   */
  entrypointsLegacy?: boolean;
}
//#endregion
//#region ../../node_modules/.pnpm/publint@0.3.18/node_modules/publint/src/index.d.ts
interface PackFile {
  name: string;
  data: string | ArrayBuffer | Uint8Array;
}
interface Options$2 {
  /**
   * Path to your package that contains a package.json file.
   *
   * ::: info Environment notes
   * - **Node.js**: Defaults to `process.cwd()`.
   * - **Browser**: Automatically inferred from `{ tarball: ArrayBuffer | ReadableStream }`. If `{ files: PackFile[] }` is used,
   *                this must be the shared directory of all files in `files`. e.g. if `name` has `"package/src/index.js"`,
   *                the `pkgDir` should be `"package"`.
   * :::
   */
  pkgDir?: string;
  /**
   * The level of messages to log (default: `'suggestion'`).
   * - `suggestion`: logs all messages
   * - `warning`: logs only `warning` and `error` messages
   * - `error`: logs only `error` messages
   */
  level?: 'suggestion' | 'warning' | 'error';
  /**
   * The package manager to use for packing the `pkgDir`. The list of
   * packed files is used in certain linting rules, e.g. files marked as
   * entrypoints but not published.
   * - `'auto'`: Automatically detects the package manager using
   *             [`package-manager-detector`](https://github.com/antfu-collective/package-manager-detector).
   * - `'npm'`/`'yarn'`/`'pnpm'`/`'bun'`: Uses the respective package manager to pack.
   * - `{ tarball }`: The packed tarball represented as an `ArrayBuffer` or a `ReadableStream`.
   * - `{ files }`: The manually-unpacked files from a tarball.
   * - `false`: Skips packing the package. This should only be used if all the files
   *            in `pkgDir` are assumed to be published, e.g. in `node_modules`.
   *
   * ::: info Environment notes
   * - **Node.js**: Defaults to `'auto'`. All options above are supported. When using a package manager
   *                to pack, lifecycle scripts like `prepack` and `postpack` are ignored
   *                (except for yarn as it does not allow ignoring lifecycle scripts).
   * - **Browser**: Only `{ tarball }` and `{ files }` are supported and either **must be passed** to work,
   *                as the browser does not have access to the file system.
   * :::
   */
  pack?: 'auto' | 'npm' | 'yarn' | 'pnpm' | 'bun' | {
    tarball: ArrayBuffer | ReadableStream<Uint8Array>;
  } | {
    files: PackFile[];
  } | false;
  /**
   * Report warnings as errors. This runs before `level` filters the result, which means that if
   * `level` is set to `'error'`, all warnings (elevated as errors) will still be reported.
   */
  strict?: boolean;
}
//#endregion
//#region ../../node_modules/.pnpm/unplugin@2.3.11/node_modules/unplugin/dist/index.d.ts
/**
* Array, or not yet
*/
type Arrayable<T> = T | Array<T>;
type StringOrRegExp = string | RegExp;
type FilterPattern = Arrayable<StringOrRegExp>;
//#endregion
//#region ../../node_modules/.pnpm/unplugin-unused@0.5.6/node_modules/unplugin-unused/dist/options-CGknhUOq.d.mts
//#region src/core/options.d.ts
type DepKind = "dependencies" | "devDependencies" | "peerDependencies";
interface Options$1 {
  root?: string;
  include?: FilterPattern;
  exclude?: FilterPattern;
  ignore?: string[] | Partial<Record<DepKind, string[]>>;
  /**
  * @default 'warning'
  */
  level?: "warning" | "error";
  /**
  * @default ['dependencies', 'peerDependencies']
  */
  depKinds?: Array<DepKind>;
}
//#endregion
//#region ../../node_modules/.pnpm/tsdown@0.21.2_@arethetypeswrong+core@0.18.2_@tsdown+css@0.21.2_@tsdown+exe@0.21.2_@type_b93b799299757e647e700df84d204817/node_modules/tsdown/dist/types-DUxKwUmX.d.mts
//#region src/features/copy.d.ts
interface CopyEntry {
  /**
  * Source path or glob pattern.
  */
  from: string | string[];
  /**
  * Destination path.
  * If not specified, defaults to the output directory ("outDir").
  */
  to?: string;
  /**
  * Whether to flatten the copied files (not preserving directory structure).
  *
  * @default true
  */
  flatten?: boolean;
  /**
  * Output copied items to console.
  * @default false
  */
  verbose?: boolean;
  /**
  * Change destination file or folder name.
  */
  rename?: string | ((name: string, extension: string, fullPath: string) => string);
}
type CopyOptions = Arrayable$1<string | CopyEntry>;
type CopyOptionsFn = (options: ResolvedConfig) => Awaitable<CopyOptions>; //#endregion
//#region src/utils/chunks.d.ts
type RolldownChunk = (OutputChunk | OutputAsset) & {
  outDir: string;
};
type ChunksByFormat = Partial<Record<NormalizedFormat, RolldownChunk[]>>;
interface TsdownBundle extends AsyncDisposable {
  chunks: RolldownChunk[];
  config: ResolvedConfig;
  inlinedDeps: Map<string, Set<string>>;
} //#endregion
//#region src/features/deps.d.ts
type NoExternalFn = (id: string, importer: string | undefined) => boolean | null | undefined | void;
interface DepsConfig {
  /**
  * Mark dependencies as external (not bundled).
  * Accepts strings, regular expressions, or Rolldown's `ExternalOption`.
  */
  neverBundle?: ExternalOption;
  /**
  * Force dependencies to be bundled, even if they are in `dependencies` or `peerDependencies`.
  */
  alwaysBundle?: Arrayable$1<string | RegExp> | NoExternalFn;
  /**
  * Whitelist of dependencies allowed to be bundled from `node_modules`.
  * Throws an error if any unlisted dependency is bundled.
  *
  * - `undefined` (default): Show warnings for bundled dependencies.
  * - `false`: Suppress all warnings about bundled dependencies.
  *
  * Note: Be sure to include all required sub-dependencies as well.
  */
  onlyBundle?: Arrayable$1<string | RegExp> | false;
  /**
  * @deprecated Use {@link onlyBundle} instead.
  */
  onlyAllowBundle?: Arrayable$1<string | RegExp> | false;
  /**
  * Skip bundling all `node_modules` dependencies.
  *
  * **Note:** This option cannot be used together with `alwaysBundle`.
  *
  * @default false
  */
  skipNodeModulesBundle?: boolean;
}
interface ResolvedDepsConfig {
  neverBundle?: ExternalOption;
  alwaysBundle?: NoExternalFn;
  onlyBundle?: Array<string | RegExp> | false;
  skipNodeModulesBundle: boolean;
}
//#endregion
//#region src/features/devtools.d.ts
interface DevtoolsOptions extends NonNullable<InputOptions["devtools"]> {
  /**
  * **[experimental]** Enable devtools integration. `@vitejs/devtools` must be installed as a dependency.
  *
  * Defaults to true, if `@vitejs/devtools` is installed.
  */
  ui?: boolean | Partial<StartOptions>;
  /**
  * Clean devtools stale sessions.
  *
  * @default true
  */
  clean?: boolean;
} //#endregion
//#region src/features/exe.d.ts
interface ExeOptions extends ExeExtensionOptions {
  seaConfig?: Omit<SeaConfig, "main" | "output" | "mainFormat">;
  /**
  * Output file name without any suffix or extension.
  * For example, do not include `.exe`, platform suffixes, or architecture suffixes.
  */
  fileName?: string | ((chunk: RolldownChunk) => string);
  /**
  * Output directory for executables.
  * @default 'build'
  */
  outDir?: string;
}
/**
* See also [Node.js SEA Documentation](https://nodejs.org/api/single-executable-applications.html#generating-single-executable-applications-with---build-sea)
*
* Note some default values are different from Node.js defaults to optimize for typical use cases (e.g. disabling experimental warning, enabling code cache). These can be overridden.
*/
interface SeaConfig {
  main?: string;
  /** Optional, if not specified, uses the current Node.js binary */
  executable?: string;
  output?: string;
  mainFormat?: "commonjs" | "module";
  /** @default true */
  disableExperimentalSEAWarning?: boolean;
  /** @default false */
  useSnapshot?: boolean;
  /** @default false */
  useCodeCache?: boolean;
  execArgv?: string[];
  /** @default "env" */
  execArgvExtension?: "none" | "env" | "cli";
  assets?: Record<string, string>;
} //#endregion
//#region src/features/hooks.d.ts
interface BuildContext {
  options: ResolvedConfig;
  hooks: Hookable<TsdownHooks>;
}
interface RolldownContext {
  buildOptions: BuildOptions;
}
/**
* Hooks for tsdown.
*/
interface TsdownHooks {
  /**
  * Invoked before each tsdown build starts.
  * Use this hook to perform setup or preparation tasks.
  */
  "build:prepare": (ctx: BuildContext) => void | Promise<void>;
  /**
  * Invoked before each Rolldown build.
  * For dual-format builds, this hook is called for each format.
  * Useful for configuring or modifying the build context before bundling.
  */
  "build:before": (ctx: BuildContext & RolldownContext) => void | Promise<void>;
  /**
  * Invoked after each tsdown build completes.
  * Use this hook for cleanup or post-processing tasks.
  */
  "build:done": (ctx: BuildContext & {
    chunks: RolldownChunk[];
  }) => void | Promise<void>;
} //#endregion
//#region node_modules/.pnpm/pkg-types@2.3.0/node_modules/pkg-types/dist/index.d.mts
interface PackageJson {
  /**
   * The name is what your thing is called.
   * Some rules:
   * - The name must be less than or equal to 214 characters. This includes the scope for scoped packages.
   * - The name can’t start with a dot or an underscore.
   * - New packages must not have uppercase letters in the name.
   * - The name ends up being part of a URL, an argument on the command line, and a folder name. Therefore, the name can’t contain any non-URL-safe characters.
   */
  name?: string;
  /**
   * Version must be parseable by `node-semver`, which is bundled with npm as a dependency. (`npm install semver` to use it yourself.)
   */
  version?: string;
  /**
   * Put a description in it. It’s a string. This helps people discover your package, as it’s listed in `npm search`.
   */
  description?: string;
  /**
   * Put keywords in it. It’s an array of strings. This helps people discover your package as it’s listed in `npm search`.
   */
  keywords?: string[];
  /**
   * The url to the project homepage.
   */
  homepage?: string;
  /**
   * The url to your project’s issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.
   */
  bugs?: string | {
    url?: string;
    email?: string;
  };
  /**
   * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you’re placing on it.
   */
  license?: string;
  /**
   * Specify the place where your code lives. This is helpful for people who want to contribute. If the git repo is on GitHub, then the `npm docs` command will be able to find you.
   * For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same shortcut syntax you use for npm install:
   */
  repository?: string | {
    type: string;
    url: string;
    /**
     * If the `package.json` for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives:
     */
    directory?: string;
  };
  /**
   * The `scripts` field is a dictionary containing script commands that are run at various times in the lifecycle of your package.
   */
  scripts?: PackageJsonScripts;
  /**
   * If you set `"private": true` in your package.json, then npm will refuse to publish it.
   */
  private?: boolean;
  /**
   * The “author” is one person.
   */
  author?: PackageJsonPerson;
  /**
   * “contributors” is an array of people.
   */
  contributors?: PackageJsonPerson[];
  /**
   * An object containing a URL that provides up-to-date information
   * about ways to help fund development of your package,
   * a string URL, or an array of objects and string URLs
   */
  funding?: PackageJsonFunding | PackageJsonFunding[];
  /**
   * The optional `files` field is an array of file patterns that describes the entries to be included when your package is installed as a dependency. File patterns follow a similar syntax to `.gitignore`, but reversed: including a file, directory, or glob pattern (`*`, `**\/*`, and such) will make it so that file is included in the tarball when it’s packed. Omitting the field will make it default to `["*"]`, which means it will include all files.
   */
  files?: string[];
  /**
   * The main field is a module ID that is the primary entry point to your program. That is, if your package is named `foo`, and a user installs it, and then does `require("foo")`, then your main module’s exports object will be returned.
   * This should be a module ID relative to the root of your package folder.
   * For most modules, it makes the most sense to have a main script and often not much else.
   */
  main?: string;
  /**
   * If your module is meant to be used client-side the browser field should be used instead of the main field. This is helpful to hint users that it might rely on primitives that aren’t available in Node.js modules. (e.g. window)
   */
  browser?: string | Record<string, string | false>;
  /**
   * The `unpkg` field is used to specify the URL to a UMD module for your package. This is used by default in the unpkg.com CDN service.
   */
  unpkg?: string;
  /**
   * A map of command name to local file name. On install, npm will symlink that file into `prefix/bin` for global installs, or `./node_modules/.bin/` for local installs.
   */
  bin?: string | Record<string, string>;
  /**
   * Specify either a single file or an array of filenames to put in place for the `man` program to find.
   */
  man?: string | string[];
  /**
   * Dependencies are specified in a simple object that maps a package name to a version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.
   */
  dependencies?: Record<string, string>;
  /**
   * If someone is planning on downloading and using your module in their program, then they probably don’t want or need to download and build the external test or documentation framework that you use.
   * In this case, it’s best to map these additional items in a `devDependencies` object.
   */
  devDependencies?: Record<string, string>;
  /**
   * If a dependency can be used, but you would like npm to proceed if it cannot be found or fails to install, then you may put it in the `optionalDependencies` object. This is a map of package name to version or url, just like the `dependencies` object. The difference is that build failures do not cause installation to fail.
   */
  optionalDependencies?: Record<string, string>;
  /**
   * In some cases, you want to express the compatibility of your package with a host tool or library, while not necessarily doing a `require` of this host. This is usually referred to as a plugin. Notably, your module may be exposing a specific interface, expected and specified by the host documentation.
   */
  peerDependencies?: Record<string, string>;
  /**
   * TypeScript typings, typically ending by `.d.ts`.
   */
  types?: string;
  /**
   * This field is synonymous with `types`.
   */
  typings?: string;
  /**
   * Non-Standard Node.js alternate entry-point to main.
   * An initial implementation for supporting CJS packages (from main), and use module for ESM modules.
   */
  module?: string;
  /**
   * Make main entry-point be loaded as an ESM module, support "export" syntax instead of "require"
   *
   * Docs:
   * - https://nodejs.org/docs/latest-v14.x/api/esm.html#esm_package_json_type_field
   *
   * @default 'commonjs'
   * @since Node.js v14
   */
  type?: "module" | "commonjs";
  /**
   * Alternate and extensible alternative to "main" entry point.
   *
   * When using `{type: "module"}`, any ESM module file MUST end with `.mjs` extension.
   *
   * Docs:
   * - https://nodejs.org/docs/latest-v14.x/api/esm.html#esm_exports_sugar
   *
   * @since Node.js v12.7
   */
  exports?: PackageJsonExports;
  /**
   *  Docs:
   *  - https://nodejs.org/api/packages.html#imports
   */
  imports?: Record<string, string | Record<string, string>>;
  /**
   * The field is used to define a set of sub-packages (or workspaces) within a monorepo.
   *
   * This field is an array of glob patterns or an object with specific configurations for managing
   * multiple packages in a single repository.
   */
  workspaces?: string[] | {
    /**
     * Workspace package paths. Glob patterns are supported.
     */
    packages?: string[];
    /**
     * Packages to block from hoisting to the workspace root.
     * Uses glob patterns to match module paths in the dependency tree.
     *
     * Docs:
     * - https://classic.yarnpkg.com/blog/2018/02/15/nohoist/
     */
    nohoist?: string[];
  };
  /**
   * The field is used to specify different TypeScript declaration files for
   * different versions of TypeScript, allowing for version-specific type definitions.
   */
  typesVersions?: Record<string, Record<string, string[]>>;
  /**
   * You can specify which operating systems your module will run on:
   * ```json
   * {
   *   "os": ["darwin", "linux"]
   * }
   * ```
   * You can also block instead of allowing operating systems, just prepend the blocked os with a '!':
   * ```json
   * {
   *   "os": ["!win32"]
   * }
   * ```
   * The host operating system is determined by `process.platform`
   * It is allowed to both block and allow an item, although there isn't any good reason to do this.
   */
  os?: string[];
  /**
   * If your code only runs on certain cpu architectures, you can specify which ones.
   * ```json
   * {
   *   "cpu": ["x64", "ia32"]
   * }
   * ```
   * Like the `os` option, you can also block architectures:
   * ```json
   * {
   *   "cpu": ["!arm", "!mips"]
   * }
   * ```
   * The host architecture is determined by `process.arch`
   */
  cpu?: string[];
  /**
   * This is a set of config values that will be used at publish-time.
   */
  publishConfig?: {
    /**
     * The registry that will be used if the package is published.
     */
    registry?: string;
    /**
     * The tag that will be used if the package is published.
     */
    tag?: string;
    /**
     * The access level that will be used if the package is published.
     */
    access?: "public" | "restricted";
    /**
     * **pnpm-only**
     *
     * By default, for portability reasons, no files except those listed in
     * the bin field will be marked as executable in the resulting package
     * archive. The executableFiles field lets you declare additional fields
     * that must have the executable flag (+x) set even if
     * they aren't directly accessible through the bin field.
     */
    executableFiles?: string[];
    /**
     * **pnpm-only**
     *
     * You also can use the field `publishConfig.directory` to customize
     * the published subdirectory relative to the current `package.json`.
     *
     * It is expected to have a modified version of the current package in
     * the specified directory (usually using third party build tools).
     */
    directory?: string;
    /**
     * **pnpm-only**
     *
     * When set to `true`, the project will be symlinked from the
     * `publishConfig.directory` location during local development.
     * @default true
     */
    linkDirectory?: boolean;
  } & Pick<PackageJson, "bin" | "main" | "exports" | "types" | "typings" | "module" | "browser" | "unpkg" | "typesVersions" | "os" | "cpu">;
  /**
   * See: https://nodejs.org/api/packages.html#packagemanager
   * This field defines which package manager is expected to be used when working on the current project.
   * Should be of the format: `<name>@<version>[#hash]`
   */
  packageManager?: string;
  [key: string]: any;
}
/**
 * See: https://docs.npmjs.com/cli/v11/using-npm/scripts#pre--post-scripts
 */
type PackageJsonScriptWithPreAndPost<S extends string> = S | `${"pre" | "post"}${S}`;
/**
 * See: https://docs.npmjs.com/cli/v11/using-npm/scripts#life-cycle-operation-order
 */
type PackageJsonNpmLifeCycleScripts = "dependencies" | "prepublishOnly" | PackageJsonScriptWithPreAndPost<"install" | "pack" | "prepare" | "publish" | "restart" | "start" | "stop" | "test" | "version">;
/**
 * See: https://pnpm.io/scripts#lifecycle-scripts
 */
type PackageJsonPnpmLifeCycleScripts = "pnpm:devPreinstall";
type PackageJsonCommonScripts = "build" | "coverage" | "deploy" | "dev" | "format" | "lint" | "preview" | "release" | "typecheck" | "watch";
type PackageJsonScriptName = PackageJsonCommonScripts | PackageJsonNpmLifeCycleScripts | PackageJsonPnpmLifeCycleScripts | (string & {});
type PackageJsonScripts = { [P in PackageJsonScriptName]?: string };
/**
 * A “person” is an object with a “name” field and optionally “url” and “email”. Or you can shorten that all into a single string, and npm will parse it for you.
 */
type PackageJsonPerson = string | {
  name: string;
  email?: string;
  url?: string;
};
type PackageJsonFunding = string | {
  url: string;
  type?: string;
};
type PackageJsonExportKey = "." | "import" | "require" | "types" | "node" | "browser" | "default" | (string & {});
type PackageJsonExportsObject = { [P in PackageJsonExportKey]?: string | PackageJsonExportsObject | Array<string | PackageJsonExportsObject> };
type PackageJsonExports = string | PackageJsonExportsObject | Array<string | PackageJsonExportsObject>;
/**
 * Defines a PackageJson structure.
 * @param pkg - The `package.json` content as an object. See {@link PackageJson}.
 * @returns the same `package.json` object.
 */
//#endregion
//#region src/utils/package.d.ts
interface PackageJsonWithPath extends PackageJson {
  packageJsonPath: string;
}
type PackageType = "module" | "commonjs" | undefined; //#endregion
//#region src/features/output.d.ts
interface OutExtensionContext {
  options: InputOptions;
  format: NormalizedFormat;
  /** "type" field in project's package.json */
  pkgType?: PackageType;
}
interface OutExtensionObject {
  js?: string;
  dts?: string;
}
type OutExtensionFactory = (context: OutExtensionContext) => OutExtensionObject | undefined;
interface ChunkAddonObject {
  js?: string;
  css?: string;
  dts?: string;
}
type ChunkAddonFunction = (ctx: {
  format: Format;
  fileName: string;
}) => ChunkAddonObject | string | undefined;
type ChunkAddon = ChunkAddonObject | ChunkAddonFunction | string; //#endregion
//#region src/features/pkg/attw.d.ts
interface AttwOptions extends CheckPackageOptions {
  /**
  * Profiles select a set of resolution modes to require/ignore. All are evaluated but failures outside
  * of those required are ignored.
  *
  * The available profiles are:
  * - `strict`: requires all resolutions
  * - `node16`: ignores node10 resolution failures
  * - `esm-only`: ignores CJS resolution failures
  *
  * @default 'strict'
  */
  profile?: "strict" | "node16" | "esm-only";
  /**
  * The level of the check.
  *
  * The available levels are:
  * - `error`: fails the build
  * - `warn`: warns the build
  *
  * @default 'warn'
  */
  level?: "error" | "warn";
  /**
  * List of problem types to ignore by rule name.
  *
  * The available values are:
  * - `no-resolution`
  * - `untyped-resolution`
  * - `false-cjs`
  * - `false-esm`
  * - `cjs-resolves-to-esm`
  * - `fallback-condition`
  * - `cjs-only-exports-default`
  * - `named-exports`
  * - `false-export-default`
  * - `missing-export-equals`
  * - `unexpected-module-syntax`
  * - `internal-resolution-error`
  *
  * @example
  * ```ts
  * ignoreRules: ['no-resolution', 'false-cjs']
  * ```
  */
  ignoreRules?: string[];
} //#endregion
//#region src/features/pkg/exports.d.ts
interface ExportsOptions {
  /**
  * Generate exports that link to source code during development.
  * - string: add as a custom condition.
  * - true: all conditions point to source files, and add dist exports to `publishConfig`.
  */
  devExports?: boolean | string;
  /**
  * Exports for package.json file.
  * @default true
  */
  packageJson?: boolean;
  /**
  * Exports for all files.
  */
  all?: boolean;
  /**
  * Specifies file patterns (as glob patterns or regular expressions) to exclude from package exports.
  * Use this to prevent certain files from being included in the exported package, such as test files, binaries, or internal utilities.
  *
  * **Note:** Do not include file extensions, and paths should be relative to the dist directory.
  *
  * @example
  * exclude: ['cli', '**\/*.test', /internal/]
  */
  exclude?: (RegExp | string)[];
  /**
  * Generate legacy fields (`main` and `module`) for older Node.js and bundlers
  * that do not support package `exports` field.
  *
  * Defaults to false, if only ESM builds are included, true otherwise.
  *
  * @see {@link https://github.com/publint/publint/issues/24}
  */
  legacy?: boolean;
  /**
  * Specifies custom exports to add to the package exports in addition to the ones generated by tsdown.
  * Use this to add additional exports in the exported package, such as workers or assets.
  *
  * @example
  * customExports(exports) {
  *   exports['./worker.js'] = './dist/worker.js';
  *   return exports;
  * }
  *
  * @example
  * ```jsonc
  * {
  *   "customExports": {
  *     "./worker.js": {
  *       "types": "./dist/worker.d.ts",
  *       "default": "./dist/worker.js"
  *     }
  *   }
  * }
  * ```
  */
  customExports?: Record<string, any> | ((exports: Record<string, any>, context: {
    pkg: PackageJson;
    chunks: ChunksByFormat;
    isPublish: boolean;
  }) => Awaitable<Record<string, any>>);
  /**
  * Generate `inlinedDependencies` field in package.json.
  * Lists dependencies that are physically inlined into the bundle with their exact versions.
  *
  * @default true
  * @see {@link https://github.com/e18e/ecosystem-issues/issues/237}
  */
  inlinedDependencies?: boolean;
} //#endregion
//#region src/features/pkg/publint.d.ts
interface PublintOptions extends Omit<Options$2, "pack" | "pkgDir"> {} //#endregion
//#region src/features/report.d.ts
interface ReportOptions {
  /**
  * Enable/disable gzip-compressed size reporting.
  * Compressing large output files can be slow, so disabling this may increase build performance for large projects.
  *
  * @default true
  */
  gzip?: boolean;
  /**
  * Enable/disable brotli-compressed size reporting.
  * Compressing large output files can be slow, so disabling this may increase build performance for large projects.
  *
  * @default false
  */
  brotli?: boolean;
  /**
  * Skip reporting compressed size for files larger than this size.
  * @default 1_000_000 // 1MB
  */
  maxCompressSize?: number;
}
//#endregion
//#region src/config/types.d.ts
type Sourcemap = boolean | "inline" | "hidden";
type Format = ModuleFormat;
type NormalizedFormat = InternalModuleFormat;
/**
* Extended input option that supports glob negation patterns.
*
* When using object form, values can be:
* - A single glob pattern string
* - An array of glob patterns, including negation patterns (prefixed with `!`)
*
* @example
* ```ts
* entry: {
*   // Single pattern
*   "utils/*": "./src/utils/*.ts",
*   // Array with negation pattern to exclude files
*   "hooks/*": ["./src/hooks/*.ts", "!./src/hooks/index.ts"],
* }
* ```
*/
type TsdownInputOption = Arrayable$1<string | Record<string, Arrayable$1<string>>>;
interface Workspace {
  /**
  * Workspace directories. Glob patterns are supported.
  * - `auto`: Automatically detect `package.json` files in the workspace.
  * @default 'auto'
  */
  include?: Arrayable$1<string> | "auto";
  /**
  * Exclude directories from workspace.
  * Defaults to all `node_modules`, `dist`, `test`, `tests`, `temp`, and `tmp` directories.
  */
  exclude?: Arrayable$1<string>;
  /**
  * Path to the workspace configuration file.
  */
  config?: boolean | string;
}
type CIOption = "ci-only" | "local-only";
type WithEnabled<T> = boolean | undefined | CIOption | (T & {
  /** @default true */enabled?: boolean | CIOption;
});
/**
* Options for tsdown.
*/
interface UserConfig {
  /**
  * Defaults to `'src/index.ts'` if it exists.
  *
  * Supports glob patterns with negation to exclude files:
  * @example
  * ```ts
  * entry: {
  *   "hooks/*": ["./src/hooks/*.ts", "!./src/hooks/index.ts"],
  * }
  * ```
  */
  entry?: TsdownInputOption;
  /**
  * Dependency handling options.
  */
  deps?: DepsConfig;
  /**
  * @deprecated Use `deps.neverBundle` instead.
  */
  external?: ExternalOption;
  /**
  * @deprecated Use `deps.alwaysBundle` instead.
  */
  noExternal?: Arrayable$1<string | RegExp> | NoExternalFn;
  /**
  * @deprecated Use `deps.onlyBundle` instead.
  */
  inlineOnly?: Arrayable$1<string | RegExp> | false;
  /**
  * @deprecated Use `deps.skipNodeModulesBundle` instead.
  * @default false
  */
  skipNodeModulesBundle?: boolean;
  alias?: Record<string, string>;
  tsconfig?: string | boolean;
  /**
  * Specifies the target runtime platform for the build.
  *
  * - `node`: Node.js and compatible runtimes (e.g., Deno, Bun).
  *   For CJS format, this is always set to `node` and cannot be changed.
  * - `neutral`: A platform-agnostic target with no specific runtime assumptions.
  * - `browser`: Web browsers.
  *
  * @default 'node'
  * @see https://tsdown.dev/options/platform
  */
  platform?: "node" | "neutral" | "browser";
  /**
  * Specifies the compilation target environment(s).
  *
  * Determines the JavaScript version or runtime(s) for which the code should be compiled.
  * If not set, defaults to the value of `engines.node` in your project's `package.json`.
  * If no `engines.node` field exists, no syntax transformations are applied.
  *
  * Accepts a single target (e.g., `'es2020'`, `'node18'`), an array of targets, or `false` to disable all transformations.
  *
  * @see {@link https://tsdown.dev/options/target#supported-targets} for a list of valid targets and more details.
  *
  * @example
  * ```jsonc
  * // Target a single environment
  * { "target": "node18" }
  * ```
  *
  * @example
  * ```jsonc
  * // Target multiple environments
  * { "target": ["node18", "es2020"] }
  * ```
  *
  * @example
  * ```jsonc
  * // Disable all syntax transformations
  * { "target": false }
  * ```
  */
  target?: string | string[] | false;
  /**
  * Compile-time env variables, which can be accessed via `import.meta.env` or `process.env`.
  * @example
  * ```json
  * {
  *   "DEBUG": true,
  *   "NODE_ENV": "production"
  * }
  * ```
  */
  env?: Record<string, any>;
  /**
  * Path to env file providing compile-time env variables.
  * @example
  * `.env`, `.env.production`, etc.
  */
  envFile?: string;
  /**
  * When loading env variables from `envFile`, only include variables with these prefixes.
  * @default 'TSDOWN_'
  */
  envPrefix?: string | string[];
  define?: Record<string, string>;
  /** @default false */
  shims?: boolean;
  /**
  * Configure tree shaking options.
  * @see {@link https://rolldown.rs/options/treeshake} for more details.
  * @default true
  */
  treeshake?: boolean | TreeshakingOptions;
  /**
  * Sets how input files are processed.
  * For example, use 'js' to treat files as JavaScript or 'base64' for images.
  * Lets you import or require files like images or fonts.
  * @example
  * ```json
  * { '.jpg': 'asset', '.png': 'base64' }
  * ```
  */
  loader?: ModuleTypes;
  /**
  * If enabled, strips the `node:` protocol prefix from import source.
  *
  * @default false
  * @deprecated Use `nodeProtocol: 'strip'` instead.
  *
  * @example
  * // With removeNodeProtocol enabled:
  * import('node:fs'); // becomes import('fs')
  */
  removeNodeProtocol?: boolean;
  /**
  * - If `true`, add `node:` prefix to built-in modules.
  * - If `'strip'`, strips the `node:` protocol prefix from import source.
  * - If `false`, does not modify the import source.
  *
  * @default false
  *
  * @example
  * // With nodeProtocol enabled:
  * import('fs'); // becomes import('node:fs')
  * // With nodeProtocol set to 'strip':
  * import('node:fs'); // becomes import('fs')
  * // With nodeProtocol set to false:
  * import('node:fs'); // remains import('node:fs')
  *
  */
  nodeProtocol?: "strip" | boolean;
  /**
  * Controls which warnings are emitted during the build process. Each option can be set to `true` (emit warning) or `false` (suppress warning).
  */
  checks?: ChecksOptions & {
    /**
    * If the config includes the `cjs` format and
    * one of its target >= node 20.19.0 / 22.12.0,
    * warn the user about the deprecation of CommonJS.
    *
    * @default true
    */
    legacyCjs?: boolean;
  };
  plugins?: InputOptions["plugins"];
  /**
  * Use with caution; ensure you understand the implications.
  */
  inputOptions?: InputOptions | ((options: InputOptions, format: NormalizedFormat, context: {
    cjsDts: boolean;
  }) => Awaitable<InputOptions | void | null>);
  /**
  * Output format(s). Available formats are
  * - `esm`: ESM
  * - `cjs`: CommonJS
  * - `iife`: IIFE
  * - `umd`: UMD
  *
  * Defaults to ESM.
  */
  format?: Format | Format[] | Partial<Record<Format, Partial<ResolvedConfig>>>;
  globalName?: string;
  /** @default 'dist' */
  outDir?: string;
  /**
  * Whether to write the files to disk.
  * This option is incompatible with watch mode.
  * @default true
  */
  write?: boolean;
  /**
  * Whether to generate source map files.
  *
  * Note that this option will always be `true` if you have
  * [`declarationMap`](https://www.typescriptlang.org/tsconfig/#declarationMap)
  * option enabled in your `tsconfig.json`.
  *
  * @default false
  */
  sourcemap?: Sourcemap;
  /**
  * Clean directories before build.
  *
  * Default to output directory.
  * @default true
  */
  clean?: boolean | string[];
  /**
  * @default false
  */
  minify?: boolean | "dce-only" | MinifyOptions;
  footer?: ChunkAddon;
  banner?: ChunkAddon;
  /**
  * Determines whether unbundle mode is enabled.
  * When set to true, the output files will mirror the input file structure.
  * @default false
  */
  unbundle?: boolean;
  /**
  * Specifies the root directory of input files, similar to TypeScript's `rootDir`.
  * This determines the output directory structure.
  *
  * By default, the root is computed as the common base directory of all entry files.
  *
  * @see https://www.typescriptlang.org/tsconfig/#rootDir
  */
  root?: string;
  /**
  * @deprecated Use `unbundle` instead.
  * @default true
  */
  bundle?: boolean;
  /**
  * Use a fixed extension for output files.
  * The extension will always be `.cjs` or `.mjs`.
  * Otherwise, it will depend on the package type.
  *
  * Defaults to `true` if `platform` is set to `node`, `false` otherwise.
  */
  fixedExtension?: boolean;
  /**
  * Custom extensions for output files.
  * `fixedExtension` will be overridden by this option.
  */
  outExtensions?: OutExtensionFactory;
  /**
  * If enabled, appends hash to chunk filenames.
  * @default true
  */
  hash?: boolean;
  /**
  * @default true
  */
  cjsDefault?: boolean;
  /**
  * Use with caution; ensure you understand the implications.
  */
  outputOptions?: OutputOptions | ((options: OutputOptions, format: NormalizedFormat, context: {
    cjsDts: boolean;
  }) => Awaitable<OutputOptions | void | null>);
  /**
  * The working directory of the config file.
  * - Defaults to `process.cwd()` for root config.
  * - Defaults to the package directory for workspace config.
  */
  cwd?: string;
  /**
  * The name to show in CLI output. This is useful for monorepos or workspaces.
  * When using workspace mode, this option defaults to the package name from package.json.
  * In non-workspace mode, this option must be set explicitly for the name to show in the CLI output.
  */
  name?: string;
  /**
  * Log level.
  * @default 'info'
  */
  logLevel?: LogLevel;
  /**
  * If true, fails the build on warnings.
  * @default false
  */
  failOnWarn?: boolean | CIOption;
  /**
  * Custom logger.
  */
  customLogger?: Logger;
  /**
  * Reuse config from Vite or Vitest (experimental)
  * @default false
  */
  fromVite?: boolean | "vitest";
  /**
  * @default false
  */
  watch?: boolean | Arrayable$1<string>;
  /**
  * Files or patterns to not watch while in watch mode.
  */
  ignoreWatch?: Arrayable$1<string | RegExp>;
  /**
  * **[experimental]** Enable devtools.
  *
  *DevTools is still under development, and this is for early testers only.
  *
  * This may slow down the build process significantly.
  *
  * @default false
  */
  devtools?: WithEnabled<DevtoolsOptions>;
  /**
  * You can specify command to be executed after a successful build, specially useful for Watch mode
  */
  onSuccess?: string | ((config: ResolvedConfig, signal: AbortSignal) => void | Promise<void>);
  /**
  * Enables generation of TypeScript declaration files (`.d.ts`).
  *
  * By default, this option is auto-detected based on your project's `package.json`:
  * - If {@link exe} is enabled, declaration file generation is disabled by default.
  * - If the `types` field is present, or if the main `exports` contains a `types` entry, declaration file generation is enabled by default.
  * - Otherwise, declaration file generation is disabled by default.
  */
  dts?: WithEnabled<Options>;
  /**
  * Enable unused dependencies check with `unplugin-unused`
  * Requires `unplugin-unused` to be installed.
  * @default false
  */
  unused?: WithEnabled<Options$1>;
  /**
  * Run publint after bundling.
  * Requires `publint` to be installed.
  * @default false
  */
  publint?: WithEnabled<PublintOptions>;
  /**
  * Run `arethetypeswrong` after bundling.
  * Requires `@arethetypeswrong/core` to be installed.
  *
  * @default false
  * @see https://github.com/arethetypeswrong/arethetypeswrong.github.io
  */
  attw?: WithEnabled<AttwOptions>;
  /**
  * Enable size reporting after bundling.
  * @default true
  */
  report?: WithEnabled<ReportOptions>;
  /**
  * `import.meta.glob` support.
  * @see https://vite.dev/guide/features.html#glob-import
  * @default true
  */
  globImport?: boolean;
  /**
  * Generate package exports for `package.json`.
  *
  * This will set the `main`, `module`, `types`, `exports` fields in `package.json`
  * to point to the generated files.
  */
  exports?: WithEnabled<ExportsOptions>;
  /**
  * **[experimental]** CSS options.
  * Requires `@tsdown/css` to be installed.
  */
  css?: CssOptions;
  /**
  * @deprecated Use `css.inject` instead.
  */
  injectStyle?: boolean;
  /**
  * @deprecated Alias for `copy`, will be removed in the future.
  */
  publicDir?: CopyOptions | CopyOptionsFn;
  /**
  * Copy files to another directory.
  * @example
  * ```ts
  * [
  *   'src/assets',
  *   'src/env.d.ts',
  *   'src/styles/**\/*.css',
  *   { from: 'src/assets', to: 'dist/assets' },
  *   { from: 'src/styles/**\/*.css', to: 'dist', flatten: true },
  * ]
  * ```
  */
  copy?: CopyOptions | CopyOptionsFn;
  hooks?: Partial<TsdownHooks> | ((hooks: Hookable<TsdownHooks>) => Awaitable<void>);
  /**
  * **[experimental]** Bundle as executable using Node.js SEA (Single Executable Applications).
  *
  * This will bundle the output into a single executable file using Node.js SEA.
  * Note that this is only supported on Node.js 25.7.0 and later, and is not supported in Bun or Deno.
  */
  exe?: WithEnabled<ExeOptions>;
  /**
  * **[experimental]** Enable workspace mode.
  * This allows you to build multiple packages in a monorepo.
  */
  workspace?: Workspace | Arrayable$1<string> | true;
}
interface InlineConfig extends UserConfig {
  /**
  * Config file path
  */
  config?: boolean | string;
  /**
  * Config loader to use. It can only be set via CLI or API.
  * @default 'auto'
  */
  configLoader?: "auto" | "native" | "unrun";
  /**
  * Filter configs by cwd or name.
  */
  filter?: RegExp | Arrayable$1<string>;
}
type UserConfigFn = (inlineConfig: InlineConfig, context: {
  ci: boolean;
}) => Awaitable<Arrayable$1<UserConfig>>;
type UserConfigExport = Awaitable<Arrayable$1<UserConfig> | UserConfigFn>;
type ResolvedConfig = Overwrite<MarkPartial<Omit<UserConfig, "workspace" | "fromVite" | "publicDir" | "bundle" | "injectStyle" | "removeNodeProtocol" | "external" | "noExternal" | "inlineOnly" | "skipNodeModulesBundle" | "logLevel" | "failOnWarn" | "customLogger" | "envFile" | "envPrefix">, "globalName" | "inputOptions" | "outputOptions" | "minify" | "define" | "alias" | "onSuccess" | "outExtensions" | "hooks" | "copy" | "loader" | "name" | "banner" | "footer" | "checks" | "css">, {
  /** Resolved entry map (after glob expansion) */entry: Record<string, string>; /** Original entry config before glob resolution (for watch mode re-globbing) */
  rawEntry?: TsdownInputOption;
  nameLabel: string | undefined;
  format: NormalizedFormat;
  target?: string[];
  clean: string[];
  pkg?: PackageJsonWithPath;
  nodeProtocol: "strip" | boolean;
  logger: Logger;
  ignoreWatch: Array<string | RegExp>;
  deps: ResolvedDepsConfig; /** Resolved root directory of input files */
  root: string;
  dts: false | Options;
  report: false | ReportOptions;
  tsconfig: false | string;
  exports: false | ExportsOptions;
  devtools: false | DevtoolsOptions;
  publint: false | PublintOptions;
  attw: false | AttwOptions;
  unused: false | Options$1;
  exe: false | ExeOptions;
}>; //#endregion
//#endregion
//#region ../../node_modules/.pnpm/tsdown@0.21.2_@arethetypeswrong+core@0.18.2_@tsdown+css@0.21.2_@tsdown+exe@0.21.2_@type_b93b799299757e647e700df84d204817/node_modules/tsdown/dist/config-Cz86PxVM.d.mts
//#region src/config/options.d.ts
/**
* Resolve user config into resolved configs
*
* **Internal API, not for public use**
* @private
*/
declare function resolveUserConfig(userConfig: UserConfig, inlineConfig: InlineConfig): Promise<ResolvedConfig[]>;
declare function mergeConfig(defaults: UserConfig, overrides: UserConfig): UserConfig;
declare function mergeConfig(defaults: InlineConfig, overrides: InlineConfig): InlineConfig; //#endregion
//#region src/config.d.ts
/**
* Defines the configuration for tsdown.
*/
declare function defineConfig(options: UserConfig): UserConfig;
declare function defineConfig(options: UserConfig[]): UserConfig[];
declare function defineConfig(options: UserConfigFn): UserConfigFn;
declare function defineConfig(options: UserConfigExport): UserConfigExport; //#endregion
//#endregion
//#region ../../node_modules/.pnpm/tsdown@0.21.2_@arethetypeswrong+core@0.18.2_@tsdown+css@0.21.2_@tsdown+exe@0.21.2_@type_b93b799299757e647e700df84d204817/node_modules/tsdown/dist/index.d.mts
//#region src/build.d.ts
/**
* Build with tsdown.
*/
declare function build$1(inlineConfig?: InlineConfig): Promise<TsdownBundle[]>;
/**
* Build with `ResolvedConfigs`.
*
* **Internal API, not for public use**
* @private
*/
declare function buildWithConfigs(configs: ResolvedConfig[], configFiles: string[], _restart: () => void): Promise<TsdownBundle[]>; //#endregion
//#region src/features/debug.d.ts
declare function enableDebug(debug?: boolean | Arrayable$1<string>): void; //#endregion
//#endregion
export { AttwOptions, BuildContext, CIOption, ChunkAddon, ChunkAddonFunction, ChunkAddonObject, CopyEntry, CopyOptions, CopyOptionsFn, DepsConfig, DevtoolsOptions, Options as DtsOptions, ExeOptions, ExportsOptions, Format, InlineConfig, type Logger, NoExternalFn, NormalizedFormat, OutExtensionContext, OutExtensionFactory, OutExtensionObject, PackageJsonWithPath, PackageType, PublintOptions, ReportOptions, ResolvedConfig, ResolvedDepsConfig, Rolldown, RolldownChunk, RolldownContext, SeaConfig, Sourcemap, TreeshakingOptions, TsdownBundle, TsdownHooks, TsdownInputOption, Options$1 as UnusedOptions, UserConfig, UserConfigExport, UserConfigFn, WithEnabled, Workspace, build$1 as build, buildWithConfigs, defineConfig, enableDebug, globalLogger, mergeConfig, resolveUserConfig };