/**
 * VendorRegistry -- Third-party AI vendor/tool registry with risk scoring.
 *
 * Tracks all third-party AI tools, models, and services used across
 * the organization. Assigns risk scores based on data handling,
 * jurisdiction, compliance certifications, and access patterns.
 *
 * T-062: Vendor registry for third-party AI tools.
 * T-063: Risk scoring for vendors.
 *
 * @connexum/ai-governance
 */
export interface VendorRegistryConfig {
    /** Directory for vendor data */
    registryDir: string;
    /** Risk threshold for automatic blocking (0-100, default: 80) */
    blockThreshold?: number;
    /** Risk threshold for requiring review (0-100, default: 50) */
    reviewThreshold?: number;
}
export type VendorStatus = 'APPROVED' | 'UNDER_REVIEW' | 'BLOCKED' | 'PENDING';
export type DataHandling = 'NO_DATA' | 'TRANSIENT' | 'STORED' | 'TRAINED';
export type ComplianceCert = 'SOC2' | 'ISO27001' | 'HIPAA_BAA' | 'GDPR_DPA' | 'PCIDSS' | 'FEDRAMP';
export interface Vendor {
    id: string;
    name: string;
    type: 'MODEL_PROVIDER' | 'TOOL' | 'API' | 'PLUGIN' | 'INFRASTRUCTURE';
    description: string;
    url?: string;
    jurisdiction: string;
    dataHandling: DataHandling;
    certifications: ComplianceCert[];
    status: VendorStatus;
    riskScore: number;
    riskFactors: RiskFactor[];
    addedAt: string;
    reviewedAt?: string;
    reviewedBy?: string;
    notes?: string;
}
export interface RiskFactor {
    factor: string;
    score: number;
    description: string;
}
export interface VendorAssessment {
    vendorId: string;
    riskScore: number;
    riskLevel: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
    factors: RiskFactor[];
    recommendation: 'APPROVE' | 'REVIEW' | 'BLOCK';
}
export declare class VendorRegistry {
    private config;
    private vendorsFile;
    private auditFile;
    constructor(config: VendorRegistryConfig);
    /**
     * Register a new vendor.
     */
    register(vendor: Omit<Vendor, 'id' | 'riskScore' | 'riskFactors' | 'status' | 'addedAt'>): Vendor;
    /**
     * Assess risk for a vendor (without registering).
     */
    assessRisk(vendor: Partial<Vendor>): VendorAssessment;
    /**
     * Update vendor status after review.
     */
    updateStatus(vendorId: string, status: VendorStatus, reviewedBy: string, notes?: string): void;
    /**
     * Check if a vendor is allowed.
     */
    isAllowed(vendorId: string): boolean;
    /**
     * Get a vendor by ID.
     */
    getVendor(vendorId: string): Vendor | undefined;
    /**
     * Find vendor by name (case-insensitive).
     */
    findByName(name: string): Vendor | undefined;
    /**
     * List all vendors, optionally filtered.
     */
    list(filter?: {
        status?: VendorStatus;
        type?: Vendor['type'];
        minRisk?: number;
    }): Vendor[];
    /**
     * Get registry statistics.
     */
    getStats(): {
        total: number;
        byStatus: Record<VendorStatus, number>;
        avgRiskScore: number;
        highRiskCount: number;
    };
    /**
     * Remove a vendor.
     */
    remove(vendorId: string): boolean;
    private scoreDataHandling;
    private scoreJurisdiction;
    private scoreCertifications;
    private scoreVendorType;
    private loadVendors;
    private saveVendors;
    private audit;
}
//# sourceMappingURL=vendor-registry.d.ts.map