/**
 * VFinanceActionPort — host adapter for Vauban Finance capabilities.
 *
 * Implements proof_grade tiers (attestation → attestation_custody_compatible → custody).
 * Manages STARK proofs, oracle quorum validation, and per-batch anchoring discipline.
 *
 * Source: MASTER-PLAN-v5.md §2.4 (Q-VF-1, Q-VF-2) — proof_grade gradient + ADR-ECO-017
 */
export type PortfolioId = string & {
    readonly __brand: "PortfolioId";
};
export type Symbol = string;
export type ProofGrade = "attestation" | "attestation_custody_compatible" | "custody";
export interface MarketSignal {
    readonly symbol: Symbol;
    readonly price: string;
    readonly timestamp: Date;
    readonly oracle_count: number;
    readonly divergence_bps: number;
}
export interface SolvencyClaim {
    readonly portfolio_id: PortfolioId;
    readonly assets_ge_liabilities: boolean;
    readonly proof_grade: ProofGrade;
    readonly stark_proof?: string;
    readonly oracle_quorum?: number;
    readonly timestamp: Date;
}
export interface TradeRecord {
    readonly id: string;
    readonly side: "buy" | "sell";
    readonly qty: string;
    readonly price: string;
    readonly ts: Date;
}
export interface TradeClaim {
    readonly trade_id: string;
    readonly executed: boolean;
    readonly hmac_signature: string;
    readonly anchor_id?: string;
    readonly timestamp: Date;
}
export interface StrategyRunInput {
    readonly strategy_id: string;
    readonly sprint_id: string;
    readonly dataset_hash: string;
    readonly code_commit: string;
}
export interface StrategyRunClaim {
    readonly strategy_id: string;
    readonly sprint_id: string;
    readonly integrity_proven: boolean;
    readonly proof_commitment: string;
    readonly timestamp: Date;
}
export interface ActionContext {
    readonly tenantId: string;
    readonly runId: string;
    readonly legalBasis?: string;
}
export interface VFinanceActionPort {
    /**
     * Read-only: fetch market signal for symbol (oracle aggregation).
     */
    getMarketSignal(symbol: Symbol, ctx: ActionContext): Promise<MarketSignal>;
    /**
     * Generate solvency proof (range proof for assets ≥ liabilities).
     * proof_grade determines: STARK requirement, oracle quorum.
     * custody (highest assurance): requires oracle_quorum ≥ 3-of-4.
     */
    getSolvencyProof(portfolioId: PortfolioId, proofGrade: ProofGrade, ctx: ActionContext): Promise<SolvencyClaim>;
    /**
     * Record a trade execution with HMAC-SHA256 signature (ADR-ECO-017).
     * Per-batch anchoring only — throws VFAnchoringForbiddenError if per-trade anchor attempted.
     */
    recordTrade(trade: TradeRecord, ctx: ActionContext): Promise<TradeClaim>;
    /**
     * Submit strategy run to sprint seal (Citadel integration pattern).
     * Returns proof commitment linking to sealed sprint.
     */
    submitStrategyRun(strategy: StrategyRunInput, ctx: ActionContext): Promise<StrategyRunClaim>;
}
export declare class VFOracleQuorumError extends Error {
    readonly required_quorum: number;
    readonly available_oracles: number;
    readonly cause?: unknown | undefined;
    constructor(required_quorum: number, available_oracles: number, cause?: unknown | undefined);
}
export declare class VFProofGradeMismatchError extends Error {
    readonly expected_grade: ProofGrade;
    readonly actual_grade: ProofGrade;
    readonly cause?: unknown | undefined;
    constructor(message: string, expected_grade: ProofGrade, actual_grade: ProofGrade, cause?: unknown | undefined);
}
export declare class VFAnchoringForbiddenError extends Error {
    readonly reason: "per_trade_anchor_forbidden" | "batch_anchor_missing";
    readonly cause?: unknown | undefined;
    constructor(message: string, reason: "per_trade_anchor_forbidden" | "batch_anchor_missing", cause?: unknown | undefined);
}
export declare class VFProofGenerationError extends Error {
    readonly portfolio_id: PortfolioId;
    readonly proof_type: "stark_range" | "commitment";
    readonly cause?: unknown | undefined;
    constructor(portfolio_id: PortfolioId, proof_type: "stark_range" | "commitment", cause?: unknown | undefined);
}
//# sourceMappingURL=vauban-finance-action.d.ts.map