export declare enum CheckerStatus { Ok = "Ok", Error = "Error", Warning = "Warning" } export declare enum MessageId { noHead = 0, svgFaviconDeclared = 1, noSvgFavicon = 2, multipleSvgFavicons = 3, noSvgFaviconHref = 4, svgFavicon404 = 5, svgFaviconCannotGet = 6, svgFaviconDownloadable = 7, svgFaviconSquare = 8, svgFaviconNotSquare = 9, noIcoFavicon = 10, multipleIcoFavicons = 11, icoFaviconDeclared = 12, icoFaviconImplicitInRoot = 13, noIcoFaviconHref = 14, icoFavicon404 = 15, icoFaviconCannotGet = 16, icoFaviconDownloadable = 17, icoFaviconExtraSizes = 18, icoFaviconMissingSizes = 19, icoFaviconExpectedSizes = 20, noDesktopPngFavicon = 21, no96x96DesktopPngFavicon = 22, desktopPngFaviconDeclared = 23, noDesktopPngFaviconHref = 24, desktopPngFaviconCannotGet = 25, desktopPngFaviconDownloadable = 26, desktopPngFavicon404 = 27, desktopPngFaviconWrongSize = 28, desktopPngFaviconRightSize = 29, noTouchWebAppTitle = 30, multipleTouchWebAppTitles = 31, emptyTouchWebAppTitle = 32, touchWebAppTitleDeclared = 33, noTouchIcon = 34, duplicatedTouchIconSizes = 35, touchIconWithSize = 36, touchIconDeclared = 37, noTouchIconHref = 38, touchIcon404 = 39, touchIconCannotGet = 40, touchIconDownloadable = 41, touchIconSquare = 42, touchIcon180x180 = 43, touchIconNotSquare = 44, touchIconWrongSize = 45, noManifest = 46, noManifestHref = 47, manifest404 = 48, manifestCannotGet = 49, manifestInvalidJson = 50, manifestName = 51, noManifestName = 52, manifestShortName = 53, noManifestShortName = 54, manifestBackgroundColor = 55, noManifestBackgroundColor = 56, manifestThemeColor = 57, noManifestThemeColor = 58, noManifestIcons = 59, noManifestIcon = 60, manifestIconDeclared = 61, manifestIconCannotGet = 62, manifestIconDownloadable = 63, manifestIcon404 = 64, manifestIconNoHref = 65, manifestIconNotSquare = 66, manifestIconRightSize = 67, manifestIconSquare = 68, manifestIconWrongSize = 69, googleNoRobotsFile = 70, googleRobotsFileFound = 71, googleIcoBlockedByRobots = 72, googleIcoAllowedByRobots = 73, googleSvgIconBlockedByRobots = 74, googleSvgIconAllowedByRobots = 75, googlePngIconBlockedByRobots = 76, googlePngIconAllowedByRobots = 77 } export type CheckerMessage = { status: CheckerStatus; id: MessageId; text: string; }; export type FetchResponse = { status: number; contentType: string | null; readableStream?: ReadableStream | null; }; export type Fetcher = (url: string, contentType?: string) => Promise; export type CheckedIcon = { content: string | null; url: string | null; width: number | null; height: number | null; }; export type DesktopSingleReport = { messages: CheckerMessage[]; icon: CheckedIcon | null; }; export type DesktopFaviconReport = { messages: CheckerMessage[]; icon: string | null; icons: { png: CheckedIcon | null; ico: CheckedIcon | null; svg: CheckedIcon | null; }; }; export type TouchIconTitleReport = { messages: CheckerMessage[]; appTitle?: string; }; export type TouchIconIconReport = { messages: CheckerMessage[]; icon: CheckedIcon | null; }; export type WebAppManifestReport = { messages: CheckerMessage[]; name?: string; shortName?: string; backgroundColor?: string; themeColor?: string; icon: CheckedIcon | null; }; export type FaviconReport = { desktop: DesktopFaviconReport; touchIcon: TouchIconReport; webAppManifest: WebAppManifestReport; }; export type TouchIconReport = TouchIconIconReport & TouchIconTitleReport; export type GoogleReport = { messages: CheckerMessage[]; icon: string | null; icons: CheckedIcon[]; };