import { z } from 'zod';
export declare const ToolIntegrationConfigSchema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "atleastone">>;
export declare const BadgeVerificationResultSchema: z.ZodObject<{
    valid: z.ZodBoolean;
    errors: z.ZodArray<z.ZodString, "many">;
    warnings: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    valid: boolean;
    warnings: string[];
    errors: string[];
}, {
    valid: boolean;
    warnings: string[];
    errors: string[];
}>;
export type ToolIntegrationConfig = z.infer<typeof ToolIntegrationConfigSchema>;
export type BadgeVerificationResult = z.infer<typeof BadgeVerificationResultSchema>;
export declare const DEFAULT_TOOL_INTEGRATIONS: ToolIntegrationConfig;
export interface ExtractedBadge {
    rawUrl: string;
    altText: string;
    label: string;
    message: string;
    linkTarget?: string;
    file: string;
    lineNumber: number;
}
/**
 * Extract shields.io badges from added (`+`) lines of a unified diff,
 * filtered to `README.md` only. Stateless — recomputes from diff each
 * invocation (ADR-083: no SHA-stamped flag files).
 */
export declare function extractBadgesFromDiff(diff: string): ExtractedBadge[];
/**
 * Predicate used by `verifyToolClaims` to determine whether a tool-integration
 * file/directory exists at the given absolute path. Injectable for tests;
 * production callers pass `fs.existsSync` (the default).
 */
export type PathExistsPredicate = (absolutePath: string) => boolean;
/**
 * For each badge, check whether any tool name from `config` appears in the
 * decoded label or message (case-insensitive, word-boundary match). For every
 * matched tool, require that at least one of its configured paths exists in
 * `repoRoot`. Missing tools become errors.
 *
 * Falsifying metric: existence of at least one config-listed path satisfies
 * the badge's tool-integration claim.
 */
export declare function verifyToolClaims(badges: ExtractedBadge[], config: ToolIntegrationConfig, repoRoot: string, exists?: PathExistsPredicate): string[];
/**
 * Flag standard-claim badges (AGENTS.md, MIT, Apache 2.0, etc.) whose link
 * target points at internal repo paths instead of the canonical upstream
 * standard. This is the failure class from mmnto-ai/totem#1925 R2.
 *
 * Standard claims are recognized in EITHER the label or the message position
 * to catch both `[![AGENTS.md](.../AGENTS.md-compliant-...)](./AGENTS.md)` and
 * `[![Tool-agnostic](.../Tool--agnostic-AGENTS.md-...)](./AGENTS.md)`.
 */
export declare function verifySelfReferenceLinks(badges: ExtractedBadge[]): string[];
//# sourceMappingURL=badge-verifier.d.ts.map