export type SignalType = 'edit_diff' | 'accept' | 'reject' | 'retry';
export type ConfidenceTier = 'strong' | 'moderate' | 'weak' | 'uncertain';
export type ComplexityLevel = 'low' | 'medium' | 'high';
export type RiskLevel = 'low' | 'medium' | 'high';
export type PatternSource = 'ast' | 'regex' | 'heuristic' | 'manual' | 'import';
export interface PatternCondition {
    type: 'language' | 'framework' | 'file_type' | 'strictness' | 'team_convention';
    value: string;
    matchScore: number;
}
export interface PatternConfidence {
    distribution: 'beta';
    alpha: number;
    beta: number;
    mean: number;
    ci95: [number, number];
    factors?: {
        frequency: number;
        consistency: number;
        usageCount: number;
        acceptanceRate: number;
    };
}
export interface PatternAttribution {
    primaryCondition: string;
    conditionConfidence: number;
    sourceFiles: string[];
    note: string;
}
export interface PatternMeta {
    language: string;
    subcategory: string;
    complexity: ComplexityLevel;
    risk: RiskLevel;
    source: PatternSource;
}
export interface PatternHistoryEntry {
    timestamp: number;
    event: 'created' | 'updated' | 'accepted' | 'rejected' | 'decayed' | 'revived';
    details?: string;
}
export interface PatternQuality {
    score: number;
    reuseRate: number;
    successRate: number;
    failureRate: number;
    acceptanceRate: number;
    daysSinceLastSignal: number;
    age: number;
}
export interface PatternRelationships {
    related: string[];
    conflicting: string[];
    complementary: string[];
    dependencies: string[];
}
export interface PatternRanking {
    score: number;
    rank: number;
    factors: {
        confidence: number;
        quality: number;
        usage: number;
        recency: number;
        acceptance: number;
    };
}
export interface Pattern {
    patternId: string;
    category: string;
    description: string;
    from: string;
    to: string;
    conditions: PatternCondition[];
    confidence: PatternConfidence;
    signals: {
        positive: number;
        negative: number;
        total: number;
        lastSignal: number;
    };
    attribution: PatternAttribution;
    scope: 'global' | 'project' | 'team';
    survivedDays: number;
    meta: PatternMeta;
    lifecycle: {
        firstSeen: number;
        lastSeen: number;
        version: number;
        history: PatternHistoryEntry[];
    };
    quality: PatternQuality;
    relationships: PatternRelationships;
    ranking: PatternRanking;
}
export interface Signal {
    id: string;
    type: SignalType;
    timestamp: number;
    sessionId: string;
    originalCode: string;
    editedCode: string;
    weight: number;
    context: SignalContext;
}
export interface SignalContext {
    language: string;
    framework: string;
    fileType: string;
    strictness: string;
    projectId: string;
}
export interface ExtractedPattern {
    category: string;
    description: string;
    from: string;
    to: string;
    confidenceDelta: number;
    conditions: PatternCondition[];
}
export interface TasteModel {
    version: string;
    lastUpdated: string;
    totalSignals: number;
    patterns: Pattern[];
}
export declare const TASTE_MODEL_VERSION = "0.3.0";
export interface CellConfig {
    cellDir: string;
    priorWeight: number;
    decayLambdaStable: number;
    decayLambdaVolatile: number;
    decayAlphaStable: number;
    decayAlphaVolatile: number;
    sessionGapMinutes: number;
    vacationDays: number;
    cloudSyncEnabled: boolean;
}
export declare const SIGNAL_WEIGHTS: Record<SignalType, number>;
export declare const CONFIDENCE_TIERS: Record<ConfidenceTier, {
    min: number;
    max: number;
}>;
export declare const DEFAULT_CONFIG: CellConfig;
export declare const VALID_CATEGORIES: string[];
export declare const VALID_LANGUAGES: string[];
//# sourceMappingURL=types.d.ts.map