#[cfg(not(feature = "std"))]
use alloc::vec::Vec;
pub use qp_plonky2_core::{
FriBatchInfo, FriCoefficient, FriInstanceInfo, FriOpeningBatch, FriOpeningExpression,
FriOpeningTerm, FriOpenings, FriOracleInfo, FriOracleLayout, FriOracleRepresentation,
FriPolynomialInfo,
};
use crate::field::extension::Extendable;
use crate::hash::hash_types::RichField;
use crate::iop::ext_target::ExtensionTarget;
pub type FriPolynomialInfoTarget = FriPolynomialInfo;
pub type FriCoefficientTarget<F, const D: usize> = FriCoefficient<F, D>;
pub type FriOpeningTermTarget<F, const D: usize> = FriOpeningTerm<F, D>;
pub type FriOpeningExpressionTarget<F, const D: usize> = FriOpeningExpression<F, D>;
#[derive(Debug)]
pub struct FriInstanceInfoTarget<F: RichField + Extendable<D>, const D: usize> {
pub oracles: Vec<FriOracleInfo>,
pub batches: Vec<FriBatchInfoTarget<F, D>>,
}
#[derive(Debug)]
pub struct FriBatchInfoTarget<F: RichField + Extendable<D>, const D: usize> {
pub point: ExtensionTarget<D>,
pub openings: Vec<FriOpeningExpressionTarget<F, D>>,
}
#[derive(Debug)]
pub struct FriOpeningsTarget<const D: usize> {
pub batches: Vec<FriOpeningBatchTarget<D>>,
}
#[derive(Debug)]
pub struct FriOpeningBatchTarget<const D: usize> {
pub values: Vec<ExtensionTarget<D>>,
}