
import { FontConfig, UniversalTokensConfigGeneric } from "../../types/dist/index.js";
import { UniversalTokensConfigAuto } from "../../automated-config/dist/generated/universalTokensConfigAuto.js";
import { Except } from "type-fest";

//#region ../config/dist/index.d.ts
//#region src/types.d.ts
type OmitRecursively<T, K extends PropertyKey> = T extends object ? { [P in keyof T as P extends K ? never : P]: OmitRecursively<T[P], K> } : T;
interface UniversalTokensConfig extends Omit<UniversalTokensConfigGeneric<UniversalTokensConfigAuto>, 'font'> {
  font: FontConfig;
}
interface ResolvedTokensConfig extends Except<UniversalTokensConfig, '$defs' | 'colorMode'> {
  readonly colorMode: OmitRecursively<UniversalTokensConfig['colorMode'], '$ref'>;
} //#endregion
//#region src/defaultTokensConfig.d.ts
/**
 * NOTE: If you're building a feature with a migration,
 * this type will likely throw.  You can regenerate yosConfig
 * by running `bun run sync:yos:local` after your local migration runs.
 *
 * You should add your net new config data to your migration, not here.
 */
//#endregion
export { ResolvedTokensConfig, UniversalTokensConfig };