/**
 * classifier.ts
 *
 * Classifies raw ObservedRequest records into meaningful categories:
 *   - Doc page visits (sanity.io/docs/*)
 *   - Search queries (search endpoints, query params)
 *   - Sanity API calls (api.sanity.io, apicdn.sanity.io)
 *   - External requests (everything else)
 *
 * Also extracts metadata like doc slugs, search query text, and page titles.
 */
import type { ObservedRequest, DocPageVisit, SearchQuery, ApiCall, ExternalRequest } from "./types.js";
export interface ClassifiedRequests {
    apiCalls: ApiCall[];
    docPageVisits: DocPageVisit[];
    externalRequests: ExternalRequest[];
    searchQueries: SearchQuery[];
}
/**
 * Classifies an array of raw observed requests into categorized buckets.
 */
export declare function classifyRequests(requests: ObservedRequest[]): ClassifiedRequests;
/**
 * Extracts the API endpoint path from a Sanity API URL.
 *
 * Example:
 *   https://api.sanity.io/v2021-03-25/data/query/production → "/data/query/production"
 */
export declare function extractApiEndpoint(url: string): string;
/**
 * Extracts the doc slug from a sanity.io/docs URL.
 *
 * Examples:
 *   https://www.sanity.io/docs/groq-introduction → "groq-introduction"
 *   https://www.sanity.io/docs/getting-started/create-a-schema → "getting-started/create-a-schema"
 *   https://www.sanity.io/docs → "" (root docs page)
 */
export declare function extractDocSlug(url: string): string;
/**
 * Extracts the domain from a URL.
 */
export declare function extractDomain(url: string): string;
/**
 * Attempts to extract a page title from an HTML response preview.
 */
export declare function extractPageTitle(responsePreview?: string): string | undefined;
/**
 * Extracts a search query string from a URL or request body.
 */
export declare function extractSearchQuery(req: ObservedRequest): string;
/**
 * Determines if a request is to a Sanity documentation page.
 */
export declare function isDocPageRequest(req: ObservedRequest): boolean;
/**
 * Determines if a request is to the Sanity API (not docs).
 */
export declare function isSanityApiRequest(req: ObservedRequest): boolean;
/**
 * Determines if a request is a search operation.
 */
export declare function isSearchRequest(req: ObservedRequest): boolean;
