## API Report File for "@backstage/plugin-lighthouse"

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

```ts
/// <reference types="react" />

import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
import { InfoCardVariants } from '@backstage/core-components';
import { RouteRef } from '@backstage/core-plugin-api';

// Warning: (ae-missing-release-tag) "Audit" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type Audit = AuditRunning | AuditFailed | AuditCompleted;

// Warning: (ae-forgotten-export) The symbol "AuditBase" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "AuditCompleted" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AuditCompleted extends AuditBase {
  // (undocumented)
  categories: Record<LighthouseCategoryId, LighthouseCategoryAbbr>;
  // (undocumented)
  report: Object;
  // (undocumented)
  status: 'COMPLETED';
  // (undocumented)
  timeCompleted: string;
}

// Warning: (ae-missing-release-tag) "AuditFailed" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AuditFailed extends AuditBase {
  // (undocumented)
  status: 'FAILED';
  // (undocumented)
  timeCompleted: string;
}

// Warning: (ae-missing-release-tag) "AuditRunning" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AuditRunning extends AuditBase {
  // (undocumented)
  status: 'RUNNING';
}

// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "EmbeddedRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EmbeddedRouter: (_props: Props) => JSX.Element;

// Warning: (ae-missing-release-tag) "EntityLastLighthouseAuditCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityLastLighthouseAuditCard: ({
  dense,
  variant,
}: {
  dense?: boolean | undefined;
  variant?: InfoCardVariants | undefined;
}) => JSX.Element;

// Warning: (ae-missing-release-tag) "EntityLighthouseContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityLighthouseContent: (_props: {
  entity?: Entity | undefined;
}) => JSX.Element;

// Warning: (ae-missing-release-tag) "FetchError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FetchError extends Error {
  // (undocumented)
  static forResponse(resp: Response): Promise<FetchError>;
  // (undocumented)
  get name(): string;
}

// Warning: (ae-missing-release-tag) "isLighthouseAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
const isLighthouseAvailable: (entity: Entity) => boolean;
export { isLighthouseAvailable };
export { isLighthouseAvailable as isPluginApplicableToEntity };

// Warning: (ae-missing-release-tag) "LASListRequest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LASListRequest {
  // (undocumented)
  limit?: number;
  // (undocumented)
  offset?: number;
}

// Warning: (ae-missing-release-tag) "LASListResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LASListResponse<Item> {
  // (undocumented)
  items: Item[];
  // (undocumented)
  limit: number;
  // (undocumented)
  offset: number;
  // (undocumented)
  total: number;
}

// Warning: (ae-missing-release-tag) "LastLighthouseAuditCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const LastLighthouseAuditCard: ({
  dense,
  variant,
}: {
  dense?: boolean | undefined;
  variant?: InfoCardVariants | undefined;
}) => JSX.Element;

// Warning: (ae-missing-release-tag) "LighthouseApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type LighthouseApi = {
  url: string;
  getWebsiteList: (listOptions: LASListRequest) => Promise<WebsiteListResponse>;
  getWebsiteForAuditId: (auditId: string) => Promise<Website>;
  triggerAudit: (payload: TriggerAuditPayload) => Promise<Audit>;
  getWebsiteByUrl: (websiteUrl: string) => Promise<Website>;
};

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

// Warning: (ae-missing-release-tag) "LighthouseCategoryAbbr" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LighthouseCategoryAbbr {
  // (undocumented)
  id: LighthouseCategoryId;
  // (undocumented)
  score: number;
  // (undocumented)
  title: string;
}

// Warning: (ae-missing-release-tag) "LighthouseCategoryId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type LighthouseCategoryId =
  | 'pwa'
  | 'seo'
  | 'performance'
  | 'accessibility'
  | 'best-practices';

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

// Warning: (ae-missing-release-tag) "lighthousePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
const lighthousePlugin: BackstagePlugin<
  {
    root: RouteRef<undefined>;
    entityContent: RouteRef<undefined>;
  },
  {}
>;
export { lighthousePlugin };
export { lighthousePlugin as plugin };

// Warning: (ae-missing-release-tag) "LighthouseRestApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LighthouseRestApi implements LighthouseApi {
  constructor(url: string);
  // (undocumented)
  static fromConfig(config: Config): LighthouseRestApi;
  // (undocumented)
  getWebsiteByUrl(websiteUrl: string): Promise<Website>;
  // (undocumented)
  getWebsiteForAuditId(auditId: string): Promise<Website>;
  // (undocumented)
  getWebsiteList({
    limit,
    offset,
  }?: LASListRequest): Promise<WebsiteListResponse>;
  // (undocumented)
  triggerAudit(payload: TriggerAuditPayload): Promise<Audit>;
  // (undocumented)
  url: string;
}

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

// Warning: (ae-missing-release-tag) "TriggerAuditPayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TriggerAuditPayload {
  // (undocumented)
  options: {
    lighthouseConfig: {
      settings: {
        emulatedFormFactor: string;
      };
    };
  };
  // (undocumented)
  url: string;
}

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

// Warning: (ae-missing-release-tag) "WebsiteListResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type WebsiteListResponse = LASListResponse<Website>;
```
