import { FastifyRequest } from "fastify";
import { CheerioAPI as CheerioAPI$1 } from "cheerio";

//#region src/services/audit/types.d.ts
type CompatibleRequest = (FastifyRequest & {
  signal?: AbortSignal;
}) | (Request & {
  signal: AbortSignal;
});
type CheerioAPI = CheerioAPI$1;
type Details = null | undefined | string | number | boolean | Details[] | {
  [key: string]: Details;
};
type AuditStatus = 'started' | 'success' | 'warning' | 'error' | 'done';
type AuditData = {
  successDetails?: Details;
  warningsDetails?: Details;
  errorsDetails?: Details;
};
type Url = string;
type AuditDataList<T extends Url> = `url_hasCanonical\\${T}` | `url_hasLocalizedLinks\\${T}` | `url_currentLocale\\${T}` | `url_htmlLang\\${T}` | `url_htmlDir\\${T}` | `url_hreflang\\${T}` | `url_hasXDefault\\${T}` | `url_allAnchorsLocalized\\${T}` | `url_hasFlagIcons\\${T}` | 'robots_robotsPresent' | 'robots_noLocalizedUrlsForgotten' | 'sitemap_sitemapPresent' | 'sitemap_noLocalizedUrlsForgotten' | 'sitemap_hasXDefault' | 'sitemap_hasAlternates';
type Locale = string;
type DomainData = {
  discoveredUrls: Record<Locale, string[]>;
  discoveredLocales: Locale[];
  defaultLocale: Locale;
  image: string;
  title: string;
  description: string;
};
type AuditEvent = {
  type?: AuditDataList<Url>;
  status?: AuditStatus;
  data?: AuditData;
  score?: number;
  progress?: number;
  message?: string;
  globalError?: string;
  domainData?: Partial<DomainData>;
};
//#endregion
export { AuditData, AuditDataList, AuditEvent, CheerioAPI, CompatibleRequest, DomainData };
//# sourceMappingURL=types.d.ts.map