/** A domain/industry that triggers specific legal questions */
export type LegalDomain = 'universal' | 'billing' | 'health' | 'fintech' | 'education' | 'ecommerce' | 'social' | 'gaming' | 'ai-ml' | 'iot' | 'hr' | 'real-estate' | 'logistics' | 'media' | 'government';
/** A legal question the LLM should investigate for a given domain */
export interface LegalQuestion {
    id: string;
    domain: LegalDomain;
    question: string;
    /** Why this matters — helps LLM prioritize */
    rationale: string;
    /** Keywords to help detect if the answer is already in the spec */
    keywords: string[];
}
/** Detected legal profile for a project */
export interface LegalProfile {
    /** Detected domains (e.g., ['billing', 'fintech']) */
    domains: LegalDomain[];
    /** Target countries/regions (e.g., ['MX', 'CO', 'US']) */
    countries: string[];
    /** Detected audience characteristics */
    audience: {
        includesMinors: boolean;
        includesPatients: boolean;
        includesEmployees: boolean;
        isB2B: boolean;
        isB2C: boolean;
    };
    /** Types of sensitive data detected */
    dataTypes: LegalDataType[];
    /** Timestamp of detection */
    detectedAt: string;
    /** Cached legal requirements from LLM investigation */
    cachedRequirements: LegalRequirement[] | null;
    /** When requirements were last refreshed */
    lastRefreshedAt: string | null;
}
export type LegalDataType = 'pii' | 'financial' | 'health' | 'biometric' | 'children' | 'location' | 'behavioral' | 'credentials';
/** A concrete legal requirement generated by LLM investigation */
export interface LegalRequirement {
    /** Which regulation/law this comes from */
    regulation: string;
    /** Country code or 'universal' */
    country: string;
    /** The requirement as an acceptance criterion */
    criterion: string;
    /** Priority: mandatory requirements block spec completion */
    priority: 'mandatory' | 'recommended' | 'informational';
    /** Reference URL to official documentation */
    reference: string | null;
}
/** Input for the legal compliance report tool */
export interface LegalComplianceReportInput {
    projectId: string;
}
/** Output of legal compliance report */
export interface LegalComplianceReport {
    projectId: string;
    profile: LegalProfile;
    /** Questions that should be investigated */
    applicableQuestions: LegalQuestion[];
    /** Per-spec compliance status */
    specCompliance: {
        specId: string;
        title: string;
        legalCriteriaCount: number;
        status: 'compliant' | 'partial' | 'missing';
    }[];
    /** Overall compliance score 0-100 */
    complianceScore: number;
    generatedAt: string;
}
//# sourceMappingURL=legal.d.ts.map