import type { PermissionAction } from './rbac.js';
export interface AcGapKeywordGroup {
    id: string;
    domain: string;
    language: string;
    keywords: string[];
}
export interface ChallengeScenarioPattern {
    id: string;
    category: string;
    triggerKeywords: string[];
    scenario: string;
    probability: 'low' | 'medium' | 'high';
    impact: 'low' | 'medium' | 'high' | 'critical';
    handlingKeywords: string[];
    handlingFound: string;
    handlingMissing: string;
    requiredHandling: string;
    dataConsistency: string;
    userExperience: string;
}
export interface CodeQualityThreshold {
    id: string;
    language: string;
    maxFileLines: number;
    maxFunctionLines: number;
    maxParams: number;
    maxNestingDepth: number;
    maxCyclomaticComplexity: number;
    minCoverageStatements: number;
    minCoverageBranches: number;
    minCoverageFunctions: number;
    minCoverageLines: number;
    duplicateLineThreshold: number;
}
/** Full compliance framework definition (from src/config/compliance-frameworks.json). */
export interface ComplianceFrameworkDef {
    id: string;
    name: string;
    fullName: string;
    type: 'privacy' | 'security' | 'quality' | 'testing' | 'accessibility';
    regions: string[];
    triggerKeywords: string[];
    dataTypes: string[];
    criteria: string[];
    references: string[];
}
export interface DorDodItemDef {
    id: string;
    kind: 'dor' | 'dod';
    description: string;
    category: string;
    required: boolean;
    autoCheck: boolean;
    autoCheckField: string | null;
    autoCheckCondition: string | null;
    scopeFilter?: string[];
    typeFilter?: string[];
}
export interface FeasibilityRule {
    id: string;
    category: 'feature' | 'performance' | 'security' | 'cheap' | 'offline' | 'realtime';
    keywords: string[];
}
export interface VagueWordItem {
    id: string;
    word: string;
}
export interface ReadinessThresholds {
    strictBlocker: number;
    strictCaution: number;
    lenientBlocker: number;
    lenientCaution: number;
}
export interface ReadinessConfig {
    vagueWords: VagueWordItem[];
    thresholds: ReadinessThresholds;
}
export interface DriftSeverityItem {
    id: string;
    severity: 'critical' | 'high' | 'medium' | 'low';
    keywords: string[];
}
export interface ElicitationQuestionConfig {
    id: string;
    category: 'scope' | 'users' | 'data' | 'behavior' | 'constraints' | 'success';
    questionTemplate: string;
    hint?: string;
    required: boolean;
    answerType: 'text' | 'choice' | 'yes-no';
    choices?: string[];
    condition: 'always' | 'data' | 'api';
    conditionKeywords?: string[];
}
export interface RbacRoleConfig {
    id: string;
    description: string;
    permissions: PermissionAction[];
}
export interface SpecTypeConfig {
    id: string;
    label: string;
    description: string;
}
//# sourceMappingURL=plugin-configs.d.ts.map