/**
 * Effective site index status.
 *
 * Answers the one question General Settings exists to answer: "can search
 * engines index this site right now, and is that what we want?" It reads the
 * SAME effective SEO config used by the public renderer (`composePageMeta`) and
 * the `/robots.txt` + `/sitemap.xml` routes — never a duplicate store — so the
 * badge shown to editors always reflects reality.
 *
 * `computeSiteIndexStatus` is a pure function (easy to unit-test across
 * environments); `getSiteIndexStatus` is the thin async gatherer that pulls the
 * effective config, module settings, environment, and last audit from the DB.
 */
import type { SiteSEOConfig } from '../config/types.js';
import { type SeoModuleSettings } from './config-store.js';
export type IndexStatusLevel = 'indexable' | 'protected' | 'blocked' | 'partially_blocked' | 'unknown';
export type IndexStatusSeverity = 'success' | 'warning' | 'danger' | 'neutral';
export type IndexCheckStatus = 'pass' | 'warning' | 'fail' | 'unknown';
export interface IndexCheck {
    key: string;
    label: string;
    value: string;
    status: IndexCheckStatus;
}
export interface IndexAction {
    label: string;
    href?: string;
    action?: string;
}
export interface SiteIndexStatus {
    status: IndexStatusLevel;
    severity: IndexStatusSeverity;
    label: string;
    description: string;
    environment: string;
    checks: IndexCheck[];
    actions: IndexAction[];
    lastAuditAt: string | null;
}
export interface IndexStatusInputs {
    environment: string | undefined;
    seo: SiteSEOConfig | null | undefined;
    module: SeoModuleSettings;
    /** True when any SEO config exists (static config or DB overrides). */
    hasSeoConfig: boolean;
    lastAuditAt: string | null;
}
/**
 * Detect a blanket `Disallow: /` in a custom robots.txt body — i.e. a rule that
 * blocks the entire site (path is exactly `/`, optionally trailing comment).
 */
export declare function robotsTxtBlocksEntireSite(robotsTxt: string): boolean;
export declare function computeSiteIndexStatus(input: IndexStatusInputs): SiteIndexStatus;
/** Gather effective SEO config + module + environment + last audit, then compute. */
export declare function getSiteIndexStatus(db: unknown): Promise<SiteIndexStatus>;
//# sourceMappingURL=index-status.d.ts.map