export type DecisionQualityDimension = 'signalQuality' | 'timingQuality' | 'riskQuality' | 'regimeFitQuality' | 'executionQuality' | 'outcomeQuality';
export interface QualityDimensionBreakdown {
    signalQuality: number;
    timingQuality: number;
    riskQuality: number;
    regimeFitQuality: number;
    executionQuality: number;
    outcomeQuality: number;
}
export interface DecisionAttribution {
    strategyId: string;
    strategyFamily?: string;
    strategyVersion?: string;
    detectorSource?: string;
    triggerSource?: string;
    experimentTag?: string;
    experimentCohort?: string;
    mergedSignalCount?: number;
}
export interface DecisionOutcome {
    outcome: 'WIN' | 'LOSS' | 'IGNORE' | 'ERROR';
    directionCorrect: boolean;
    priceAtDecision: number;
    priceAfterWindow: number;
    pnlPct: number;
    maxFavorableExcursionPct: number;
    maxAdverseExcursionPct: number;
    edgePersistenceMs: number;
}
export interface DecisionQualityScore {
    overallQualityScore: number;
    dimensions: QualityDimensionBreakdown;
}
export interface StrategyExperimentState {
    strategyId: string;
    status: 'active' | 'suppressed' | 'candidate' | 'disabled';
    rankingScore: number;
    qualityScore: number;
    suppressionReason?: string;
    lastEvaluatedAt?: string;
    sampleSize: number;
    experimentTag?: string;
    experimentCohort?: string;
}
export interface StrategyQualityStats {
    strategyId: string;
    strategyFamily?: string;
    strategyVersion?: string;
    symbol?: string;
    totalDecisions: number;
    wins: number;
    losses: number;
    ignores: number;
    errors: number;
    winRate: number;
    avgPnlPct: number;
    avgOverallQualityScore: number;
    avgSignalQuality: number;
    avgTimingQuality: number;
    avgRiskQuality: number;
    avgRegimeFitQuality: number;
    avgExecutionQuality: number;
    avgOutcomeQuality: number;
    avgMfePct: number;
    avgMaePct: number;
    firstEvaluationTs?: string;
    latestEvaluationTs?: string;
}
export interface DecisionEvaluation {
    decisionId: string;
    symbol: string;
    evaluatedAt: number;
    confidenceAtDecision: number;
    convictionMultiplier: number;
    riskMode?: string;
    marketRegime?: string;
    attribution: DecisionAttribution;
    outcome: DecisionOutcome;
    quality: DecisionQualityScore;
}
//# sourceMappingURL=decision-quality.interface.d.ts.map