## API Report File for "@backstage/plugin-badges-backend"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
import express from 'express';
import { PluginEndpointDiscovery } from '@backstage/backend-common';

// Warning: (ae-missing-release-tag) "Badge" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Badge {
  color?: string;
  description?: string;
  kind?: 'entity';
  label: string;
  labelColor?: string;
  link?: string;
  message: string;
  style?: BadgeStyle;
}

// Warning: (ae-missing-release-tag) "BADGE_STYLES" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BADGE_STYLES: readonly [
  'plastic',
  'flat',
  'flat-square',
  'for-the-badge',
  'social',
];

// Warning: (ae-missing-release-tag) "BadgeBuilder" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BadgeBuilder = {
  getBadges(): Promise<BadgeInfo[]>;
  createBadgeJson(options: BadgeOptions): Promise<BadgeSpec>;
  createBadgeSvg(options: BadgeOptions): Promise<string>;
};

// Warning: (ae-missing-release-tag) "BadgeContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BadgeContext {
  // (undocumented)
  badgeUrl: string;
  // (undocumented)
  config: Config;
  // (undocumented)
  entity?: Entity;
}

// Warning: (ae-missing-release-tag) "BadgeFactories" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BadgeFactories {
  // (undocumented)
  [id: string]: BadgeFactory;
}

// Warning: (ae-missing-release-tag) "BadgeFactory" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BadgeFactory {
  // (undocumented)
  createBadge(context: BadgeContext): Badge;
}

// Warning: (ae-missing-release-tag) "BadgeInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BadgeInfo = {
  id: string;
};

// Warning: (ae-missing-release-tag) "BadgeOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BadgeOptions = {
  badgeInfo: BadgeInfo;
  context: BadgeContext;
};

// Warning: (ae-missing-release-tag) "BadgeSpec" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BadgeSpec = {
  id: string;
  badge: Badge;
  url: string;
  markdown: string;
};

// Warning: (ae-missing-release-tag) "BadgeStyle" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BadgeStyle = typeof BADGE_STYLES[number];

// Warning: (ae-missing-release-tag) "createDefaultBadgeFactories" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const createDefaultBadgeFactories: () => BadgeFactories;

// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise<express.Router>;

// Warning: (ae-missing-release-tag) "DefaultBadgeBuilder" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DefaultBadgeBuilder implements BadgeBuilder {
  constructor(factories: BadgeFactories);
  // (undocumented)
  createBadgeJson(options: BadgeOptions): Promise<BadgeSpec>;
  // (undocumented)
  createBadgeSvg(options: BadgeOptions): Promise<string>;
  // (undocumented)
  getBadges(): Promise<BadgeInfo[]>;
}

// Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface RouterOptions {
  // (undocumented)
  badgeBuilder?: BadgeBuilder;
  // (undocumented)
  badgeFactories?: BadgeFactories;
  // (undocumented)
  catalog?: CatalogApi;
  // (undocumented)
  config: Config;
  // (undocumented)
  discovery: PluginEndpointDiscovery;
}
```
