using CSVFiles
using DataFrames
using Distributions
using FileIO
using MacroTools
using StatsBase
using IterTools

include("mcs_types.jl")
include("EmpiricalDistribution.jl")
include("montecarlo.jl")
include("lhs.jl")
include("sobol.jl")
include("defmcs.jl")

export 
    @defsim, generate_trials!, run, save_trial_inputs, _save_trial_results, set_models!,
    EmpiricalDistribution, ReshapedDistribution, RandomVariable, TransformSpec, CorrelationSpec, 
    SimulationDef, SimulationInstance, AbstractSimulationData,
    LHSData, LatinHypercubeSimulationDef, MCSData, MonteCarloSimulationDef, SobolData, SobolSimulationDef,
    INNER, OUTER, sample!, analyze, MonteCarloSimulationInstance, LatinHypercubeSimulationInstance, 
    SobolSimulationInstance
