
import { FontType } from "../../types/dist/index.js";

//#region ../fonts/dist/index.d.ts
//#region src/index.d.ts
declare const UDS_FONTS_CDN_PREFIX = "https://s.yimg.com/bw/fonts";
declare const FONT_DECLARATIONS_MAP: {
  readonly 'centra-no2': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Centra No2";
    readonly isVariableFont: false;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Hairline";
      readonly value: 50;
    }, {
      readonly label: "Thin";
      readonly value: 100;
    }, {
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Book";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "ExtraBold";
      readonly value: 800;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      readonly fontStyle: "normal";
      readonly fontWeight: "50";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-hairline.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "50";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-hairline-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "100";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-thin.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "100";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-thin-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-light.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-light-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-book.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-book-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-medium.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-medium-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-bold.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-bold-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "800";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-extrabold.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "800";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-extrabold-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "900";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-black.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "900";
      readonly src: "https://s.yimg.com/bw/fonts/centra-no2-black-italic.woff2";
    }];
  };
  readonly gelica: {
    readonly fallback: string[];
    readonly type: "serif";
    readonly fontFamily: "Gelica";
    readonly isVariableFont: false;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "ExtraLight";
      readonly value: 250;
    }, {
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "SemiBold";
      readonly value: 600;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "Black";
      readonly value: 800;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      readonly fontStyle: "normal";
      readonly fontWeight: "250";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-extralight.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "250";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-extralight-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-light.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-light-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-regular.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-regular-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-medium.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-medium-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "600";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-semibold.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "600";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-semibold-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-bold.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-bold-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "800";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-black.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "800";
      readonly src: "https://s.yimg.com/bw/fonts/gelica-black-italic.woff2";
    }];
  };
  readonly yas: {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "YA Sans VF";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: [{
      readonly label: "Normal";
      readonly value: 100;
    }];
    readonly fontWeights: [{
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "SemiBold";
      readonly value: 600;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: 100;
      /**
       * Font file fvar axis default is 300, and "Regular" named instance is at 400.
       * Using 400 to match the font's Regular instance.
       */
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontStyle: "normal";
      readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/yas-latin1-normal-no-italic-vf.woff2";
    }];
  };
  readonly inter: {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Inter";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Thin";
      readonly value: 100;
    }, {
      readonly label: "Extra Light";
      readonly value: 200;
    }, {
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Semi Bold";
      readonly value: 600;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "Extra Bold";
      readonly value: 800;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/inter-vf.woff2";
    }];
  };
  readonly 'roboto-mono': {
    readonly fallback: string[];
    readonly type: "mono";
    readonly fontFamily: "Roboto Mono";
    readonly isVariableFont: false;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Thin";
      readonly value: 100;
    }, {
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      readonly fontStyle: "normal";
      readonly fontWeight: "100";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-100.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "100";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-100-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-300.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-300-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-400.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-400-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-500.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "500";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-500-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-700.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/roboto-mono-700-italic.woff2";
    }];
  };
  readonly 'yahoo-sans': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Yahoo Sans";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "ExtraLight";
      readonly value: 200;
    }, {
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Semibold";
      readonly value: 585;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "ExtraBold";
      readonly value: 810;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-sans-vf.woff2";
    }];
  };
  readonly 'yahoo-sans-cr4': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Yahoo CR4 BETA VF";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 450;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-sans-cr4-vf.woff2";
    }];
  };
  readonly 'yahoo-product-sans': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Yahoo Product Sans VF";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 450;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-product-sans-vf.woff2";
    }];
  };
  readonly 'yahoo-product-sans-extended': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "YahooPd_Eval202412";
    readonly isVariableFont: true;
    readonly fontSlants: [{
      readonly label: "Italic";
      readonly value: 9;
    }, {
      readonly label: "None";
      readonly value: 0;
    }];
    readonly fontWidths: [{
      readonly label: "Cond";
      readonly value: 50;
    }, {
      readonly label: "Normal";
      readonly value: 75;
    }, {
      readonly label: "Ext";
      readonly value: 100;
    }];
    readonly fontWeights: [{
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 450;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Semibold";
      readonly value: 600;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "Black";
      readonly value: 850;
    }];
    readonly defaults: {
      readonly fontSlant: 0;
      readonly fontWidth: 75;
      readonly fontWeight: 450;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/YahooPd_Eval202412-v1.1.0.woff2";
    }];
  };
  readonly 'yahoo-sans-condensed': {
    readonly fallback: string[];
    readonly type: "sans";
    readonly fontFamily: "Yahoo Sans Cond";
    readonly isVariableFont: true;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Medium";
      readonly value: 500;
    }, {
      readonly label: "Bold";
      readonly value: 718;
    }, {
      readonly label: "XBold";
      readonly value: 800;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      /** TODO: We can make performant by only including font weights used for this font in config */readonly fontWeight: "1 1000";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-sans-condensed-vf.woff2";
    }];
  };
  readonly 'yahoo-serif-display': {
    readonly fallback: string[];
    readonly type: "serif";
    readonly fontFamily: "Yahoo Serif Display";
    readonly isVariableFont: false;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Light";
      readonly value: 300;
    }, {
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }, {
      readonly label: "Extrabold";
      readonly value: 800;
    }, {
      readonly label: "Black";
      readonly value: 900;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      readonly fontStyle: "normal";
      readonly fontWeight: "300";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-display-light.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-display-regular.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-display-bold.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "800";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-display-extrabold.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "900";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-display-black.woff2";
    }];
  };
  readonly 'yahoo-serif-text': {
    readonly fallback: string[];
    readonly type: "serif";
    readonly fontFamily: "Yahoo Serif Text";
    readonly isVariableFont: false;
    readonly fontSlants: undefined;
    readonly fontWidths: undefined;
    readonly fontWeights: [{
      readonly label: "Regular";
      readonly value: 400;
    }, {
      readonly label: "Bold";
      readonly value: 700;
    }];
    readonly defaults: {
      readonly fontSlant: undefined;
      readonly fontWidth: undefined;
      readonly fontWeight: 400;
    };
    readonly declarations: [{
      readonly fontStyle: "normal";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-text-regular.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "400";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-text-italic.woff2";
    }, {
      readonly fontStyle: "normal";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-text-bold.woff2";
    }, {
      readonly fontStyle: "italic";
      readonly fontWeight: "700";
      readonly src: "https://s.yimg.com/bw/fonts/yahoo-serif-text-bold-italic.woff2";
    }];
  };
};
type FontAxisConfig = {
  label: string;
  value: number;
};
type FontDeclarationItemConfig = {
  /** @default to normal if not provided */fontStyle?: 'normal' | 'italic';
  fontWeight?: `${number}` | '1 1000'; /** @defaults to swap if not provided */
  fontDisplay?: 'swap';
  src: `${typeof UDS_FONTS_CDN_PREFIX}/${string}.woff2`;
};
type FontDeclarationConfig = {
  fallback: string[];
  type: FontType;
  isVariableFont: boolean;
  fontSlants: FontAxisConfig[] | undefined;
  fontWidths: FontAxisConfig[] | undefined;
  fontFamily: string;
  fontWeights: FontAxisConfig[];
  declarations: FontDeclarationItemConfig[];
  defaults: {
    fontSlant: number | undefined;
    fontWidth: number | undefined;
    fontWeight: number;
  };
};
type FontDeclarationMap = typeof FONT_DECLARATIONS_MAP;
type FontID = keyof typeof FONT_DECLARATIONS_MAP;
type FontDeclaration = (typeof FONT_DECLARATIONS_MAP)[FontID]['declarations'][number];
type FontFamilyCDNUrl = FontDeclaration['src'];
type FontWeightForFont<T extends FontID> = FontDeclarationMap[T]['fontWeights'][number]; //#endregion
//#endregion
export { FONT_DECLARATIONS_MAP, FontAxisConfig, FontDeclarationConfig, FontDeclarationItemConfig, FontDeclarationMap, FontFamilyCDNUrl, FontID, FontWeightForFont };