import { ConnectorType, MarketType } from './connector.interface';
import { SignalDirection } from './signal.interface';
import { CalibrationDecisionMeta } from './calibration/conviction-calibration.interface';
import { DetectorStrategySignalAttribution } from './detector-strategy.interface';
export declare enum AdvisorWorkflowState {
    PLAN = "PLAN",
    DECIDE = "DECIDE",
    VALIDATE = "VALIDATE",
    EXECUTE = "EXECUTE",
    REVIEW = "REVIEW"
}
export declare enum AdvisorDecision {
    TRADE = "TRADE",
    NO_TRADE = "NO_TRADE"
}
export interface TradeIntent {
    intentId: string;
    symbol: string;
    connectorType: ConnectorType;
    marketType: MarketType;
    decision: AdvisorDecision;
    direction?: SignalDirection;
    confidence: number;
    entryPrice?: number;
    stopPrice?: number;
    targets?: number[];
    rationale: string;
    issuedAt: number;
    expiresAt: number;
}
export interface ExecutionCommand {
    commandId: string;
    idempotencyKey: string;
    intentId: string;
    symbol: string;
    connectorType: ConnectorType;
    marketType: MarketType;
    side: 'BUY' | 'SELL';
    type: 'MARKET' | 'LIMIT' | 'STOP_MARKET' | 'TAKE_PROFIT_MARKET';
    quantity: number;
    price?: number;
    sourceKey: string;
    sourceRestApiUrl?: string;
    issuedAt: number;
}
export interface ReviewResult {
    intentId: string;
    symbol: string;
    isWin: boolean;
    entryPrice: number;
    exitPrice: number;
    realizedRr?: number;
    winRate: number;
    feedback: string;
    reviewedAt: number;
}
export interface PolicyDecision {
    accepted: boolean;
    reasons: string[];
}
export interface RiskGateDecision {
    accepted: boolean;
    reasons: string[];
}
export interface PromptPolicyVersion {
    version: number;
    policyText: string;
    source: 'baseline' | 'controller' | 'manual';
    createdAt: number;
}
export interface AdvisorLlmDecision {
    decision: AdvisorDecision;
    symbol: string;
    direction?: SignalDirection;
    confidence: number;
    intent?: 'ENTER' | 'HOLD' | 'EXIT' | 'STAND_DOWN';
    cooldownMs?: number;
    riskBoost?: number;
    trend: string;
    entryPrice?: number;
    stopPrice?: number;
    targets?: number[];
    rationale: string;
    validUntil?: number;
    constraints?: string[];
    horizonClass?: 'scalp' | 'intraday' | 'swing';
    reasoningCode?: string;
    windowSec: number;
    generatedAt: number;
    conviction?: AdvisorConvictionSnapshot;
    capitalMultiplier?: number;
    calibratedConfidence?: number;
}
export interface AdvisorConvictionComponents {
    confidenceScore: number;
    regimeScore: number;
    volatilityScore: number;
    liquidityScore: number;
    healthScore?: number;
}
export interface AdvisorConvictionSnapshot {
    finalScore: number;
    baseScore: number;
    riskFloor: number;
    capitalMultiplier: number;
    allocatedMultiplier?: number;
    multiplierRaw: number;
    multiplierCapped: number;
    components: AdvisorConvictionComponents;
}
export declare enum AdvisorMarketRegime {
    TREND = "TREND",
    RANGE = "RANGE",
    BREAKOUT = "BREAKOUT",
    REVERSAL = "REVERSAL",
    MIXED = "MIXED",
    UNKNOWN = "UNKNOWN"
}
export interface AdvisorRiskBudget {
    maxPositionUsd?: number;
    maxLeverage?: number;
    maxDrawdownPct?: number;
    maxSpreadPct?: number;
}
export interface AdvisorLlmDecisionRequest {
    requestId: string;
    sessionId: string;
    idempotencyKey: string;
    symbol: string;
    modelProfile?: 'coding' | 'ml';
    connectorType: ConnectorType;
    marketType: MarketType;
    marketRegime: AdvisorMarketRegime;
    riskBudget?: AdvisorRiskBudget;
    issuedAt: number;
    decisionWindow?: {
        triggerEvents: string[];
        triggerCount: number;
        decisionWindowMs: number;
    };
    detectorStrategy?: DetectorStrategySignalAttribution;
}
export interface AdvisorDecisionValidation {
    accepted: boolean;
    reasons: string[];
    featureValidationStatus?: 'valid' | 'invalid' | 'unknown';
    missingFeatureCount?: number;
    nanFeatureCount?: number;
    decisionBlockReason?: string;
    strategyRequirementFailure?: string;
}
export interface AdvisorLlmUsage {
    promptTokens?: number;
    completionTokens?: number;
    totalTokens?: number;
}
export interface AdvisorLlmTransportMeta {
    provider: 'openai' | 'glm' | 'claude-cli';
    model: string;
    modelProfile?: 'coding' | 'ml';
    latencyMs: number;
    usage?: AdvisorLlmUsage;
    calibration?: CalibrationDecisionMeta;
}
export interface AdvisorLlmDecisionResponse {
    requestId: string;
    sessionId: string;
    approvedDecision: AdvisorLlmDecision;
    validation: AdvisorDecisionValidation;
    policyFlags: string[];
    latencyMs: number;
    generatedAt: number;
    meta?: AdvisorLlmTransportMeta;
}
export interface AdvisorHistoricalSetup {
    symbol: string;
    regime: AdvisorMarketRegime;
    decision: AdvisorDecision;
    confidence: number;
    realizedRr?: number;
    slippageBps?: number;
    timeToFillMs?: number;
    ts: number;
}
//# sourceMappingURL=advisor-agent.interface.d.ts.map