/** * Shared IndexNow utilities for build-time and runtime * This module has no Nuxt/Nitro dependencies so it can be used in both contexts */ export declare const INDEXNOW_HOSTS: string[]; /** * Get IndexNow endpoints, with test override support */ export declare function getIndexNowEndpoints(): string[]; export interface IndexNowSubmitResult { success: boolean; error?: string; host?: string; } export interface IndexNowRequestBody { host: string; key: string; keyLocation: string; urlList: string[]; } /** * Build the IndexNow API request body */ export declare function buildIndexNowBody(routes: string[], key: string, siteUrl: string): IndexNowRequestBody; export interface SubmitOptions { /** Custom fetch implementation (defaults to globalThis.fetch) */ fetchFn?: typeof fetch; /** Per-request timeout in ms (default 10000) */ timeoutMs?: number; /** Logger for debug/warn messages (optional) */ logger?: { debug: (msg: string) => void; warn: (msg: string) => void; }; } /** * Submit URLs to IndexNow API with fallback on rate limit * Works in both build-time (native fetch) and runtime ($fetch) contexts */ export declare function submitToIndexNowShared(routes: string[], key: string, siteUrl: string, options?: SubmitOptions): Promise; export interface PageHashMeta { route: string; hash: string; } export interface BuildMetaChanges { changed: number; added: number; removed: number; changedRoutes?: string[]; addedRoutes?: string[]; removedRoutes?: string[]; } export interface BuildMeta { buildId: string; pageCount: number; createdAt: string; /** Changes from previous build (only present if prevMeta was available) */ changes?: BuildMetaChanges; /** Page hashes - object format (new) or array format (legacy) */ pages: Record | PageHashMeta[]; } /** * Compare page hashes between current and previous builds * Returns changed, added, and removed routes */ export declare function comparePageHashes(currentPages: Record | PageHashMeta[], prevMeta: BuildMeta | null | undefined): { changed: string[]; added: string[]; removed: string[]; };