# Functions for interacting with data files and `exdf` objects
export(check_response_curve_data)
export(choose_input_files)
export(choose_input_licor_files)
export(choose_input_tdl_files)
export(get_oxygen_from_preamble)
export(identify_tdl_cycles)
export(organize_response_curve_data)
export(pair_gasex_and_tdl)
export(pdf_print)
export(PhotoGEA_example_file_path)
export(process_tdl_cycle_erml)
export(process_tdl_cycle_polynomial)
export(read.csv.exdf)
export(read_cr3000)
export(read_gasex_file)
export(read_licor_6800_Excel)
export(read_licor_6800_plaintext)
export(remove_points)
export(set_variable)
export(smooth_tdl_data)
export(write.csv.exdf)

# Functions for scientific analysis
export(apply_gm)
export(basic_stats)
export(calculate_arrhenius)
export(calculate_ball_berry_index)
export(calculate_c3_assimilation)
export(calculate_c3_limitations_grassi)
export(calculate_c3_limitations_warren)
export(calculate_c3_variable_j)
export(calculate_c4_assimilation)
export(calculate_c4_assimilation_hyperbola)
export(calculate_gamma_star)
export(calculate_gas_properties)
export(calculate_gm_busch)
export(calculate_gm_ubierna)
export(calculate_isotope_discrimination)
export(calculate_jmax)
export(calculate_leakiness_ubierna)
export(calculate_peaked_gaussian)
export(calculate_temperature_response)
export(calculate_temperature_response_arrhenius)
export(calculate_temperature_response_gaussian)
export(calculate_temperature_response_johnson)
export(calculate_temperature_response_polynomial)
export(calculate_ternary_correction)
export(calculate_total_pressure)
export(calculate_wue)
export(confidence_intervals_c3_aci)
export(confidence_intervals_c3_variable_j)
export(confidence_intervals_c4_aci)
export(confidence_intervals_c4_aci_hyperbola)
export(error_function_c3_aci)
export(error_function_c3_variable_j)
export(error_function_c4_aci)
export(error_function_c4_aci_hyperbola)
export(estimate_licor_variance)
export(estimate_operating_point)
export(fit_ball_berry)
export(fit_c3_aci)
export(fit_c3_variable_j)
export(fit_c4_aci)
export(fit_c4_aci_hyperbola)
export(fit_laisk)
export(fit_medlyn)
export(get_sample_valve_from_filename)
export(identify_c3_limiting_processes)
export(initial_guess_c3_aci)
export(initial_guess_c3_variable_j)
export(initial_guess_c4_aci)
export(initial_guess_c4_aci_hyperbola)
export(optimizer_deoptim)
export(optimizer_hjkb)
export(optimizer_nlminb)
export(optimizer_nmkb)
export(optimizer_null)
export(residual_stats)

# Basic methods for `exdf` class
export(as.data.frame.exdf)
export(by.exdf)
export(cbind.exdf)
export(dim.exdf)
export(dimnames.exdf)
export(exdf)
export(is.exdf)
export(length.exdf)
export(print.exdf)
export(rbind.exdf)
export(split.exdf)
export(str.exdf)
export(`dimnames<-.exdf`)
export(`[.exdf`)
export(`[<-.exdf`)
S3method(as.data.frame, exdf)
S3method(by, exdf)
S3method(cbind, exdf)
S3method(dim, exdf)
S3method(dimnames, exdf)
S3method(length, exdf)
S3method(print, exdf)
S3method(rbind, exdf)
S3method(split, exdf)
S3method(str, exdf)
S3method(`dimnames<-`, exdf)
S3method(`[<-`, exdf)
S3method(`[`, exdf)

# Functions for checking required columns
export(check_required_variables)
export(check_required_variables.data.frame)
export(check_required_variables.exdf)
S3method(check_required_variables, data.frame)
S3method(check_required_variables, exdf)

# Functions for documenting columns
export(document_variables)
export(document_variables.data.frame)
export(document_variables.exdf)
S3method(document_variables, data.frame)
S3method(document_variables, exdf)

# Functions for getting identifier columns
export(identifier_columns)
export(identifier_columns.data.frame)
export(identifier_columns.exdf)
S3method(identifier_columns, data.frame)
S3method(identifier_columns, exdf)

# Convenience functions for identifying common columns
export(identify_common_columns)
export(identify_common_columns.data.frame)
export(identify_common_columns.exdf)
S3method(identify_common_columns, data.frame)
S3method(identify_common_columns, exdf)

# Convenience functions for consolidating nested lists
export(consolidate)
export(consolidate.data.frame)
export(consolidate.exdf)
S3method(consolidate, data.frame)
S3method(consolidate, exdf)

# Functions for excluding outliers
export(exclude_outliers)
export(exclude_outliers.data.frame)
export(exclude_outliers.exdf)
S3method(exclude_outliers, data.frame)
S3method(exclude_outliers, exdf)

# Functions for factorizing ID columns
export(factorize_id_column)
export(factorize_id_column.character)
export(factorize_id_column.data.frame)
export(factorize_id_column.exdf)
S3method(factorize_id_column, character)
S3method(factorize_id_column, data.frame)
S3method(factorize_id_column, exdf)

# Convenience functions for plotting
export(barchart_with_errorbars)
export(bwplot_wrapper)
export(multi_curve_colors)
export(multi_curve_line_colors)
export(multi_curve_point_colors)
export(plot_ball_berry_fit)
export(plot_c3_aci_fit)
export(plot_c4_aci_fit)
export(plot_c4_aci_hyperbola_fit)
export(plot_laisk_fit)
export(xyplot_avg_rc)

# Deprecated functions
export(check_licor_data)
export(read_licor_file)
export(read_tdl_file)
