/**
 * Nexus Prime — Hilbert Space Math Primitives
 *
 * Classical simulation of quantum-like properties for agent coordination.
 * Provides tensor product, partial trace, Born rule sampling, and
 * spherical interpolation in high-dimensional complex-valued spaces.
 *
 * Phase: 9A (Quantum-Inspired Agent Entanglement)
 *
 * IMPORTANT: This uses classical computation simulating quantum-like
 * properties, NOT actual quantum hardware. The approach exploits
 * distributional semantics in vector spaces to model "intuitive coordination."
 */
/** Complex number as [real, imaginary] tuple */
export type Complex = [number, number];
/** State vector: array of complex amplitudes */
export type StateVector = Complex[];
/** Density matrix: 2D array of complex entries */
export type DensityMatrix = Complex[][];
export declare function cAdd(a: Complex, b: Complex): Complex;
export declare function cMul(a: Complex, b: Complex): Complex;
export declare function cConj(a: Complex): Complex;
export declare function cAbs2(a: Complex): number;
export declare function cScale(a: Complex, s: number): Complex;
/** Normalize a state vector so probabilities sum to 1 */
export declare function normalize(v: StateVector): StateVector;
/** Inner product <a|b> */
export declare function innerProduct(a: StateVector, b: StateVector): Complex;
/**
 * Tensor product |a⟩ ⊗ |b⟩ → combined Hilbert space.
 * Used to create joint quantum states for multiple agents.
 */
export declare function tensorProduct(a: StateVector, b: StateVector): StateVector;
/**
 * Partial trace: given a joint state |ψ⟩ of dimension dimA × dimB,
 * trace out subsystem B to get the reduced density matrix for A.
 *
 * Returns: dimA × dimA density matrix for subsystem A.
 */
export declare function partialTraceB(state: StateVector, dimA: number, dimB: number): DensityMatrix;
/**
 * Born rule sampling: collapse a state vector by measurement.
 * Returns the index of the measured outcome, weighted by |amplitude|².
 *
 * This is the core mechanism: when an agent "measures" (executes),
 * the shared state collapses and correlated agents shift accordingly.
 */
export declare function bornRuleSample(state: StateVector): number;
/**
 * Get probability distribution from state vector (Born rule).
 */
export declare function probabilities(state: StateVector): number[];
/** Create a uniform superposition over D strategies: |ψ⟩ = (1/√D) Σ|i⟩ */
export declare function uniformSuperposition(dim: number): StateVector;
/** Create an entangled Bell-like state for 2 agents with D strategies each.
 *  |Φ⟩ = (1/√D) Σ |i⟩⊗|i⟩ — maximally entangled.
 */
export declare function bellState(dim: number): StateVector;
/** Create a GHZ-like state for N agents with D strategies each.
 *  |GHZ⟩ = (1/√D) Σ |i,i,...,i⟩ — all agents correlated.
 */
export declare function ghzState(numAgents: number, dim: number): StateVector;
/**
 * Apply a bias (rotation) to one agent's subspace within a joint state.
 * This nudges the agent toward a preferred strategy without collapsing.
 *
 * @param state Joint state vector
 * @param agentIndex Which agent (0-indexed)
 * @param numAgents Total number of agents
 * @param dim Strategy dimension per agent
 * @param preferredStrategy Index of the preferred strategy
 * @param strength Bias strength 0.0 (no effect) to 1.0 (full collapse)
 */
export declare function applyBias(state: StateVector, agentIndex: number, numAgents: number, dim: number, preferredStrategy: number, strength: number): StateVector;
