import type { ParsedPage, RuleResult } from "../../types.js"; export declare function robotsSitemapPresenceRule(source: string): Promise; /** * Parse all `Sitemap:` directive URLs from a robots.txt string. * * Case-insensitive per the Sitemaps protocol spec. Multiple occurrences are * allowed and all are returned. Comment lines and blank lines are skipped. * Leading/trailing whitespace around the URL value is stripped. * * Returns `[]` when no `Sitemap:` directives are present. */ export declare function parseSitemapDirectives(robotsTxt: string): string[]; /** * Parses Disallow directives from the `User-agent: *` block of a robots.txt string. * Returns an array of raw pattern strings (e.g. "/secret", "/templates/", "/*.json"). */ /** Parse `Crawl-delay: N` from the `User-agent: *` block. Returns seconds, or 0 if unset. */ export declare function parseCrawlDelaySeconds(robotsTxt: string): number; /** * Parse Disallow patterns for the given user-agents. Merges the `User-agent: *` * block with any named UA blocks; a hostile site that specifically disallows * `pseolint` without a wildcard still gets honored. * * The default UA list (`["*"]`) preserves the pre-v0.3.2 behavior for callers * that don't opt into UA-specific matching. */ export declare function parseDisallowPatterns(robotsTxt: string, userAgents?: readonly string[]): string[]; /** * Returns true if `urlPath` (e.g. "/blog/post") is blocked by a single Disallow pattern. * * Rules: * - Trailing slash: "/foo/" blocks any path starting with "/foo/" * - Wildcard `*`: iterative segment matching (no dynamic RegExp — avoids ReDoS) * - Exact match otherwise */ export declare function isBlockedByPattern(urlPath: string, pattern: string): boolean; export declare function robotsComplianceRule(pages: ParsedPage[], sitemapUrls: Set, robotsTxtContent: string): RuleResult[]; //# sourceMappingURL=robots-sitemap-presence.d.ts.map