class LoadFlowParameters extends AbstractExtendable<LoadFlowParameters> {

    public LoadFlowParameters copy() {
        byte[] bytes = writeInMemory();
        try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes)) {
            return JsonLoadFlowParameters.read(bais);
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }
    }

    public  LoadFlowParameters(VoltageInitMode voltageInitMode, boolean transformerVoltageControlOn,
                              boolean noGeneratorReactiveLimits, boolean phaseShifterRegulationOn,
                              boolean twtSplitShuntAdmittance, boolean simulShunt, boolean readSlackBus, boolean writeSlackBus,
                              boolean dc, boolean distributedSlack, BalanceType balanceType);
    public  LoadFlowParameters(VoltageInitMode voltageInitMode, boolean transformerVoltageControlOn,
        boolean noGeneratorReactiveLimits, boolean phaseShifterRegulationOn,
        boolean twtSplitShuntAdmittance);
    public  LoadFlowParameters(VoltageInitMode voltageInitMode, boolean transformerVoltageControlOn);
    public  LoadFlowParameters(VoltageInitMode voltageInitMode);
    public  LoadFlowParameters();
    protected  LoadFlowParameters(LoadFlowParameters other);

}