// Auto-generated by designlang. Do not edit by hand.
// Re-extract with `npx designlang <url>` to refresh.
//
// Import next to your token JSON to get type-safe access:
//
//   import type { ColorToken, SpacingToken } from './<host>-tokens';
//   import tokens from './<host>-design-tokens.json';
//
// Source: https://stripe.com
// Generated: 2026-05-17T21:15:59.521Z

export type Hex = `#${string}`;
export type Px  = `${number}px`;
export type Ms  = `${number}ms`;

export type ColorRole = 'primary' | 'secondary' | 'accent';
export type ColorHex  = '#000000' | '#533afd' | '#50617a' | '#061b31' | '#ffffff' | '#64748d' | '#0000ee' | '#e5edf5' | '#7f7dfc' | '#3c4f69' | '#273951' | '#7389ff' | '#1a2c44' | '#ff6118' | '#b9b9f9' | '#6480b2' | '#d6d9fc' | '#839bc8' | '#101010' | '#a3b5d6' | '#81b81a' | '#000eff' | '#2d2564' | '#ffe0d1' | '#635bff' | '#00d66f' | '#4834db' | '#182659' | '#f2f7fe';
export type ColorToken = ColorRole | ColorHex;

export type FontFamilyToken = 'sohne-var';
export type FontSizeToken   = never;
export type FontWeightToken = '400' | '300' | '500';

export type SpacingToken = '1px' | '28px' | '32px' | '40px' | '48px' | '52px' | '60px' | '64px' | '72px' | '80px' | '96px' | '340px' | '366px';

export type RadiusToken = '1px' | '4px' | '8px' | '16px' | '100px';

export type DurationToken = '100ms' | '200ms' | '300ms' | '500ms' | '800ms';
export type EasingToken   = never;

export type MaterialLanguage = 'flat';

export interface DesignTokens {
  color: { [role in ColorRole]: ColorHex };
  typography: {
    family: FontFamilyToken;
    size: FontSizeToken;
    weight: FontWeightToken;
  };
  spacing: ReadonlyArray<SpacingToken>;
  radius:  ReadonlyArray<RadiusToken>;
  motion: {
    duration: ReadonlyArray<DurationToken>;
    easing:   ReadonlyArray<EasingToken>;
  };
}

declare const tokens: DesignTokens;
export default tokens;
