# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.5.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

package libdnf5::conf;
use base qw(Exporter);
use base qw(DynaLoader);
require libdnf5::common;
require libdnf5::exception;
require libdnf5::logger;
package libdnf5::confc;
bootstrap libdnf5::conf;
package libdnf5::conf;
@EXPORT = qw();

# ---------- BASE METHODS -------------

package libdnf5::conf;

sub TIEHASH {
    my ($classname,$obj) = @_;
    return bless $obj, $classname;
}

sub CLEAR { }

sub FIRSTKEY { }

sub NEXTKEY { }

sub FETCH {
    my ($self,$field) = @_;
    my $member_func = "swig_${field}_get";
    $self->$member_func();
}

sub STORE {
    my ($self,$field,$newval) = @_;
    my $member_func = "swig_${field}_set";
    $self->$member_func($newval);
}

sub this {
    my $ptr = shift;
    return tied(%$ptr);
}


# ------- FUNCTION WRAPPERS --------

package libdnf5::conf;

*get_library_version = *libdnf5::confc::get_library_version;
*get_plugin_api_version = *libdnf5::confc::get_plugin_api_version;

############# Class : libdnf5::conf::StringUniquePtr ##############

package libdnf5::conf::StringUniquePtr;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_StringUniquePtr(@_);
    bless $self, $pkg if defined($self);
}

*__deref__ = *libdnf5::confc::StringUniquePtr___deref__;
*release = *libdnf5::confc::StringUniquePtr_release;
*reset = *libdnf5::confc::StringUniquePtr_reset;
*swap = *libdnf5::confc::StringUniquePtr_swap;
*get = *libdnf5::confc::StringUniquePtr_get;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_StringUniquePtr($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::LibraryVersion ##############

package libdnf5::conf::LibraryVersion;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*swig_prime_get = *libdnf5::confc::LibraryVersion_prime_get;
*swig_prime_set = *libdnf5::confc::LibraryVersion_prime_set;
*swig_major_get = *libdnf5::confc::LibraryVersion_major_get;
*swig_major_set = *libdnf5::confc::LibraryVersion_major_set;
*swig_minor_get = *libdnf5::confc::LibraryVersion_minor_get;
*swig_minor_set = *libdnf5::confc::LibraryVersion_minor_set;
*swig_micro_get = *libdnf5::confc::LibraryVersion_micro_get;
*swig_micro_set = *libdnf5::confc::LibraryVersion_micro_set;
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_LibraryVersion(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_LibraryVersion($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::PluginAPIVersion ##############

package libdnf5::conf::PluginAPIVersion;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*swig_major_get = *libdnf5::confc::PluginAPIVersion_major_get;
*swig_major_set = *libdnf5::confc::PluginAPIVersion_major_set;
*swig_minor_get = *libdnf5::confc::PluginAPIVersion_minor_get;
*swig_minor_set = *libdnf5::confc::PluginAPIVersion_minor_set;
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_PluginAPIVersion(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_PluginAPIVersion($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::Option ##############

package libdnf5::conf::Option;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*Priority_EMPTY = *libdnf5::confc::Option_Priority_EMPTY;
*Priority_DEFAULT = *libdnf5::confc::Option_Priority_DEFAULT;
*Priority_MAINCONFIG = *libdnf5::confc::Option_Priority_MAINCONFIG;
*Priority_AUTOMATICCONFIG = *libdnf5::confc::Option_Priority_AUTOMATICCONFIG;
*Priority_REPOCONFIG = *libdnf5::confc::Option_Priority_REPOCONFIG;
*Priority_INSTALLROOT = *libdnf5::confc::Option_Priority_INSTALLROOT;
*Priority_PLUGINDEFAULT = *libdnf5::confc::Option_Priority_PLUGINDEFAULT;
*Priority_PLUGINCONFIG = *libdnf5::confc::Option_Priority_PLUGINCONFIG;
*Priority_COMMANDLINE = *libdnf5::confc::Option_Priority_COMMANDLINE;
*Priority_RUNTIME = *libdnf5::confc::Option_Priority_RUNTIME;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_Option($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::Option_clone;
*get_priority = *libdnf5::confc::Option_get_priority;
*set = *libdnf5::confc::Option_set;
*get_value_string = *libdnf5::confc::Option_get_value_string;
*empty = *libdnf5::confc::Option_empty;
*lock = *libdnf5::confc::Option_lock;
*is_locked = *libdnf5::confc::Option_is_locked;
*assert_not_locked = *libdnf5::confc::Option_assert_not_locked;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionBool ##############

package libdnf5::conf::OptionBool;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionBool(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionBool($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionBool_clone;
*set = *libdnf5::confc::OptionBool_set;
*get_value = *libdnf5::confc::OptionBool_get_value;
*get_default_value = *libdnf5::confc::OptionBool_get_default_value;
*get_value_string = *libdnf5::confc::OptionBool_get_value_string;
*get_default_true_values = *libdnf5::confc::OptionBool_get_default_true_values;
*get_default_false_values = *libdnf5::confc::OptionBool_get_default_false_values;
*get_true_values = *libdnf5::confc::OptionBool_get_true_values;
*get_false_values = *libdnf5::confc::OptionBool_get_false_values;
*test = *libdnf5::confc::OptionBool_test;
*from_string = *libdnf5::confc::OptionBool_from_string;
*to_string = *libdnf5::confc::OptionBool_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionEnum ##############

package libdnf5::conf::OptionEnum;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionEnum(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionEnum($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionEnum_clone;
*set = *libdnf5::confc::OptionEnum_set;
*get_value = *libdnf5::confc::OptionEnum_get_value;
*get_default_value = *libdnf5::confc::OptionEnum_get_default_value;
*get_value_string = *libdnf5::confc::OptionEnum_get_value_string;
*test = *libdnf5::confc::OptionEnum_test;
*from_string = *libdnf5::confc::OptionEnum_from_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionNumberInt32 ##############

package libdnf5::conf::OptionNumberInt32;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionNumberInt32(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionNumberInt32($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionNumberInt32_clone;
*set = *libdnf5::confc::OptionNumberInt32_set;
*get_value = *libdnf5::confc::OptionNumberInt32_get_value;
*get_default_value = *libdnf5::confc::OptionNumberInt32_get_default_value;
*get_value_string = *libdnf5::confc::OptionNumberInt32_get_value_string;
*test = *libdnf5::confc::OptionNumberInt32_test;
*from_string = *libdnf5::confc::OptionNumberInt32_from_string;
*to_string = *libdnf5::confc::OptionNumberInt32_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionNumberUInt32 ##############

package libdnf5::conf::OptionNumberUInt32;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionNumberUInt32(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionNumberUInt32($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionNumberUInt32_clone;
*set = *libdnf5::confc::OptionNumberUInt32_set;
*get_value = *libdnf5::confc::OptionNumberUInt32_get_value;
*get_default_value = *libdnf5::confc::OptionNumberUInt32_get_default_value;
*get_value_string = *libdnf5::confc::OptionNumberUInt32_get_value_string;
*test = *libdnf5::confc::OptionNumberUInt32_test;
*from_string = *libdnf5::confc::OptionNumberUInt32_from_string;
*to_string = *libdnf5::confc::OptionNumberUInt32_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionNumberInt64 ##############

package libdnf5::conf::OptionNumberInt64;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionNumberInt64(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionNumberInt64($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionNumberInt64_clone;
*set = *libdnf5::confc::OptionNumberInt64_set;
*get_value = *libdnf5::confc::OptionNumberInt64_get_value;
*get_default_value = *libdnf5::confc::OptionNumberInt64_get_default_value;
*get_value_string = *libdnf5::confc::OptionNumberInt64_get_value_string;
*test = *libdnf5::confc::OptionNumberInt64_test;
*from_string = *libdnf5::confc::OptionNumberInt64_from_string;
*to_string = *libdnf5::confc::OptionNumberInt64_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionNumberUInt64 ##############

package libdnf5::conf::OptionNumberUInt64;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionNumberUInt64(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionNumberUInt64($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionNumberUInt64_clone;
*set = *libdnf5::confc::OptionNumberUInt64_set;
*get_value = *libdnf5::confc::OptionNumberUInt64_get_value;
*get_default_value = *libdnf5::confc::OptionNumberUInt64_get_default_value;
*get_value_string = *libdnf5::confc::OptionNumberUInt64_get_value_string;
*test = *libdnf5::confc::OptionNumberUInt64_test;
*from_string = *libdnf5::confc::OptionNumberUInt64_from_string;
*to_string = *libdnf5::confc::OptionNumberUInt64_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionNumberFloat ##############

package libdnf5::conf::OptionNumberFloat;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionNumberFloat(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionNumberFloat($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionNumberFloat_clone;
*set = *libdnf5::confc::OptionNumberFloat_set;
*get_value = *libdnf5::confc::OptionNumberFloat_get_value;
*get_default_value = *libdnf5::confc::OptionNumberFloat_get_default_value;
*get_value_string = *libdnf5::confc::OptionNumberFloat_get_value_string;
*test = *libdnf5::confc::OptionNumberFloat_test;
*from_string = *libdnf5::confc::OptionNumberFloat_from_string;
*to_string = *libdnf5::confc::OptionNumberFloat_to_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionSeconds ##############

package libdnf5::conf::OptionSeconds;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::OptionNumberInt32 libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionSeconds(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionSeconds_clone;
*set = *libdnf5::confc::OptionSeconds_set;
*from_string = *libdnf5::confc::OptionSeconds_from_string;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionSeconds($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionString ##############

package libdnf5::conf::OptionString;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionString($self);
        delete $OWNER{$self};
    }
}

sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionString(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionString_clone;
*set = *libdnf5::confc::OptionString_set;
*get_value = *libdnf5::confc::OptionString_get_value;
*get_default_value = *libdnf5::confc::OptionString_get_default_value;
*get_value_string = *libdnf5::confc::OptionString_get_value_string;
*test = *libdnf5::confc::OptionString_test;
*from_string = *libdnf5::confc::OptionString_from_string;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionStringSet ##############

package libdnf5::conf::OptionStringSet;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionStringSet(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionStringSet($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionStringSet_clone;
*set = *libdnf5::confc::OptionStringSet_set;
*add = *libdnf5::confc::OptionStringSet_add;
*add_item = *libdnf5::confc::OptionStringSet_add_item;
*get_value = *libdnf5::confc::OptionStringSet_get_value;
*get_default_value = *libdnf5::confc::OptionStringSet_get_default_value;
*get_value_string = *libdnf5::confc::OptionStringSet_get_value_string;
*test = *libdnf5::confc::OptionStringSet_test;
*from_string = *libdnf5::confc::OptionStringSet_from_string;
*to_string = *libdnf5::confc::OptionStringSet_to_string;
*get_default_delimiters = *libdnf5::confc::OptionStringSet_get_default_delimiters;
*get_delimiters = *libdnf5::confc::OptionStringSet_get_delimiters;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionStringList ##############

package libdnf5::conf::OptionStringList;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionStringList(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionStringList($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionStringList_clone;
*set = *libdnf5::confc::OptionStringList_set;
*add = *libdnf5::confc::OptionStringList_add;
*add_item = *libdnf5::confc::OptionStringList_add_item;
*get_value = *libdnf5::confc::OptionStringList_get_value;
*get_default_value = *libdnf5::confc::OptionStringList_get_default_value;
*get_value_string = *libdnf5::confc::OptionStringList_get_value_string;
*test = *libdnf5::confc::OptionStringList_test;
*from_string = *libdnf5::confc::OptionStringList_from_string;
*to_string = *libdnf5::confc::OptionStringList_to_string;
*get_default_delimiters = *libdnf5::confc::OptionStringList_get_default_delimiters;
*get_delimiters = *libdnf5::confc::OptionStringList_get_delimiters;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionStringAppendSet ##############

package libdnf5::conf::OptionStringAppendSet;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionStringAppendSet(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionStringAppendSet($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionStringAppendSet_clone;
*set = *libdnf5::confc::OptionStringAppendSet_set;
*add = *libdnf5::confc::OptionStringAppendSet_add;
*add_item = *libdnf5::confc::OptionStringAppendSet_add_item;
*get_value = *libdnf5::confc::OptionStringAppendSet_get_value;
*get_default_value = *libdnf5::confc::OptionStringAppendSet_get_default_value;
*get_value_string = *libdnf5::confc::OptionStringAppendSet_get_value_string;
*test = *libdnf5::confc::OptionStringAppendSet_test;
*from_string = *libdnf5::confc::OptionStringAppendSet_from_string;
*to_string = *libdnf5::confc::OptionStringAppendSet_to_string;
*get_default_delimiters = *libdnf5::confc::OptionStringAppendSet_get_default_delimiters;
*get_delimiters = *libdnf5::confc::OptionStringAppendSet_get_delimiters;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionStringAppendList ##############

package libdnf5::conf::OptionStringAppendList;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionStringAppendList(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionStringAppendList($self);
        delete $OWNER{$self};
    }
}

*clone = *libdnf5::confc::OptionStringAppendList_clone;
*set = *libdnf5::confc::OptionStringAppendList_set;
*add = *libdnf5::confc::OptionStringAppendList_add;
*add_item = *libdnf5::confc::OptionStringAppendList_add_item;
*get_value = *libdnf5::confc::OptionStringAppendList_get_value;
*get_default_value = *libdnf5::confc::OptionStringAppendList_get_default_value;
*get_value_string = *libdnf5::confc::OptionStringAppendList_get_value_string;
*test = *libdnf5::confc::OptionStringAppendList_test;
*from_string = *libdnf5::confc::OptionStringAppendList_from_string;
*to_string = *libdnf5::confc::OptionStringAppendList_to_string;
*get_default_delimiters = *libdnf5::confc::OptionStringAppendList_get_default_delimiters;
*get_delimiters = *libdnf5::confc::OptionStringAppendList_get_delimiters;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionPath ##############

package libdnf5::conf::OptionPath;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::OptionString libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionPath($self);
        delete $OWNER{$self};
    }
}

sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionPath(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionPath_clone;
*set = *libdnf5::confc::OptionPath_set;
*test = *libdnf5::confc::OptionPath_test;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildBool ##############

package libdnf5::conf::OptionChildBool;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildBool(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildBool_clone;
*get_priority = *libdnf5::confc::OptionChildBool_get_priority;
*set = *libdnf5::confc::OptionChildBool_set;
*get_value = *libdnf5::confc::OptionChildBool_get_value;
*get_default_value = *libdnf5::confc::OptionChildBool_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildBool_get_value_string;
*empty = *libdnf5::confc::OptionChildBool_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildBool($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildString ##############

package libdnf5::conf::OptionChildString;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildString(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildString_clone;
*get_priority = *libdnf5::confc::OptionChildString_get_priority;
*set = *libdnf5::confc::OptionChildString_set;
*get_value = *libdnf5::confc::OptionChildString_get_value;
*get_default_value = *libdnf5::confc::OptionChildString_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildString_get_value_string;
*empty = *libdnf5::confc::OptionChildString_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildString($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildStringList ##############

package libdnf5::conf::OptionChildStringList;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildStringList(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildStringList_clone;
*get_priority = *libdnf5::confc::OptionChildStringList_get_priority;
*set = *libdnf5::confc::OptionChildStringList_set;
*get_value = *libdnf5::confc::OptionChildStringList_get_value;
*get_default_value = *libdnf5::confc::OptionChildStringList_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildStringList_get_value_string;
*empty = *libdnf5::confc::OptionChildStringList_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildStringList($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildStringSet ##############

package libdnf5::conf::OptionChildStringSet;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildStringSet(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildStringSet_clone;
*get_priority = *libdnf5::confc::OptionChildStringSet_get_priority;
*set = *libdnf5::confc::OptionChildStringSet_set;
*get_value = *libdnf5::confc::OptionChildStringSet_get_value;
*get_default_value = *libdnf5::confc::OptionChildStringSet_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildStringSet_get_value_string;
*empty = *libdnf5::confc::OptionChildStringSet_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildStringSet($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildStringAppendList ##############

package libdnf5::conf::OptionChildStringAppendList;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildStringAppendList(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildStringAppendList_clone;
*get_priority = *libdnf5::confc::OptionChildStringAppendList_get_priority;
*set = *libdnf5::confc::OptionChildStringAppendList_set;
*get_value = *libdnf5::confc::OptionChildStringAppendList_get_value;
*get_default_value = *libdnf5::confc::OptionChildStringAppendList_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildStringAppendList_get_value_string;
*empty = *libdnf5::confc::OptionChildStringAppendList_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildStringAppendList($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildStringAppendSet ##############

package libdnf5::conf::OptionChildStringAppendSet;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildStringAppendSet(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildStringAppendSet_clone;
*get_priority = *libdnf5::confc::OptionChildStringAppendSet_get_priority;
*set = *libdnf5::confc::OptionChildStringAppendSet_set;
*get_value = *libdnf5::confc::OptionChildStringAppendSet_get_value;
*get_default_value = *libdnf5::confc::OptionChildStringAppendSet_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildStringAppendSet_get_value_string;
*empty = *libdnf5::confc::OptionChildStringAppendSet_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildStringAppendSet($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildNumberInt32 ##############

package libdnf5::conf::OptionChildNumberInt32;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildNumberInt32(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildNumberInt32_clone;
*get_priority = *libdnf5::confc::OptionChildNumberInt32_get_priority;
*set = *libdnf5::confc::OptionChildNumberInt32_set;
*get_value = *libdnf5::confc::OptionChildNumberInt32_get_value;
*get_default_value = *libdnf5::confc::OptionChildNumberInt32_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildNumberInt32_get_value_string;
*empty = *libdnf5::confc::OptionChildNumberInt32_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildNumberInt32($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildNumberUInt32 ##############

package libdnf5::conf::OptionChildNumberUInt32;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildNumberUInt32(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildNumberUInt32_clone;
*get_priority = *libdnf5::confc::OptionChildNumberUInt32_get_priority;
*set = *libdnf5::confc::OptionChildNumberUInt32_set;
*get_value = *libdnf5::confc::OptionChildNumberUInt32_get_value;
*get_default_value = *libdnf5::confc::OptionChildNumberUInt32_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildNumberUInt32_get_value_string;
*empty = *libdnf5::confc::OptionChildNumberUInt32_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildNumberUInt32($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildNumberFloat ##############

package libdnf5::conf::OptionChildNumberFloat;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildNumberFloat(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildNumberFloat_clone;
*get_priority = *libdnf5::confc::OptionChildNumberFloat_get_priority;
*set = *libdnf5::confc::OptionChildNumberFloat_set;
*get_value = *libdnf5::confc::OptionChildNumberFloat_get_value;
*get_default_value = *libdnf5::confc::OptionChildNumberFloat_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildNumberFloat_get_value_string;
*empty = *libdnf5::confc::OptionChildNumberFloat_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildNumberFloat($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildEnum ##############

package libdnf5::conf::OptionChildEnum;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildEnum(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildEnum_clone;
*get_priority = *libdnf5::confc::OptionChildEnum_get_priority;
*set = *libdnf5::confc::OptionChildEnum_set;
*get_value = *libdnf5::confc::OptionChildEnum_get_value;
*get_default_value = *libdnf5::confc::OptionChildEnum_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildEnum_get_value_string;
*empty = *libdnf5::confc::OptionChildEnum_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildEnum($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionChildSeconds ##############

package libdnf5::conf::OptionChildSeconds;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Option libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionChildSeconds(@_);
    bless $self, $pkg if defined($self);
}

*clone = *libdnf5::confc::OptionChildSeconds_clone;
*get_priority = *libdnf5::confc::OptionChildSeconds_get_priority;
*set = *libdnf5::confc::OptionChildSeconds_set;
*get_value = *libdnf5::confc::OptionChildSeconds_get_value;
*get_default_value = *libdnf5::confc::OptionChildSeconds_get_default_value;
*get_value_string = *libdnf5::confc::OptionChildSeconds_get_value_string;
*empty = *libdnf5::confc::OptionChildSeconds_empty;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionChildSeconds($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionBindsIterator ##############

package libdnf5::conf::OptionBindsIterator;
use overload
    "==" => sub { $_[0]->__eq__($_[1])},
    "=" => sub { my $class = ref($_[0]); $class->new($_[0]) },
    "fallback" => 1;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionBindsIterator(@_);
    bless $self, $pkg if defined($self);
}

*next = *libdnf5::confc::OptionBindsIterator_next;
*value = *libdnf5::confc::OptionBindsIterator_value;
*__eq__ = *libdnf5::confc::OptionBindsIterator___eq__;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionBindsIterator($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::PairConstStringItemPtr ##############

package libdnf5::conf::PairConstStringItemPtr;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_PairConstStringItemPtr(@_);
    bless $self, $pkg if defined($self);
}

*swig_first_get = *libdnf5::confc::PairConstStringItemPtr_first_get;
*swig_first_set = *libdnf5::confc::PairConstStringItemPtr_first_set;
*swig_second_get = *libdnf5::confc::PairConstStringItemPtr_second_get;
*swig_second_set = *libdnf5::confc::PairConstStringItemPtr_second_set;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_PairConstStringItemPtr($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::OptionBinds ##############

package libdnf5::conf::OptionBinds;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_OptionBinds(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_OptionBinds($self);
        delete $OWNER{$self};
    }
}

*at = *libdnf5::confc::OptionBinds_at;
*empty = *libdnf5::confc::OptionBinds_empty;
*size = *libdnf5::confc::OptionBinds_size;
*begin = *libdnf5::confc::OptionBinds_begin;
*end = *libdnf5::confc::OptionBinds_end;
*find = *libdnf5::confc::OptionBinds_find;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::Item ##############

package libdnf5::conf::Item;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_Item($self);
        delete $OWNER{$self};
    }
}

*get_priority = *libdnf5::confc::Item_get_priority;
*new_string = *libdnf5::confc::Item_new_string;
*get_value_string = *libdnf5::confc::Item_get_value_string;
*get_is_append_option = *libdnf5::confc::Item_get_is_append_option;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::ConfigParser ##############

package libdnf5::conf::ConfigParser;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_ConfigParser($self);
        delete $OWNER{$self};
    }
}

sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_ConfigParser(@_);
    bless $self, $pkg if defined($self);
}

*read = *libdnf5::confc::ConfigParser_read;
*write = *libdnf5::confc::ConfigParser_write;
*add_section = *libdnf5::confc::ConfigParser_add_section;
*has_section = *libdnf5::confc::ConfigParser_has_section;
*has_option = *libdnf5::confc::ConfigParser_has_option;
*set_value = *libdnf5::confc::ConfigParser_set_value;
*remove_section = *libdnf5::confc::ConfigParser_remove_section;
*remove_option = *libdnf5::confc::ConfigParser_remove_option;
*add_comment_line = *libdnf5::confc::ConfigParser_add_comment_line;
*get_value = *libdnf5::confc::ConfigParser_get_value;
*get_header = *libdnf5::confc::ConfigParser_get_header;
*get_data = *libdnf5::confc::ConfigParser_get_data;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::Vars ##############

package libdnf5::conf::Vars;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*Priority_DEFAULT = *libdnf5::confc::Vars_Priority_DEFAULT;
*Priority_AUTO = *libdnf5::confc::Vars_Priority_AUTO;
*Priority_VARSDIR = *libdnf5::confc::Vars_Priority_VARSDIR;
*Priority_PLUGIN = *libdnf5::confc::Vars_Priority_PLUGIN;
*Priority_ENVIRONMENT = *libdnf5::confc::Vars_Priority_ENVIRONMENT;
*Priority_COMMANDLINE = *libdnf5::confc::Vars_Priority_COMMANDLINE;
*Priority_RUNTIME = *libdnf5::confc::Vars_Priority_RUNTIME;
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_Vars(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_Vars($self);
        delete $OWNER{$self};
    }
}

*substitute = *libdnf5::confc::Vars_substitute;
*get_variables = *libdnf5::confc::Vars_get_variables;
*set = *libdnf5::confc::Vars_set;
*unset = *libdnf5::confc::Vars_unset;
*is_read_only = *libdnf5::confc::Vars_is_read_only;
*contains = *libdnf5::confc::Vars_contains;
*get_value = *libdnf5::confc::Vars_get_value;
*get = *libdnf5::confc::Vars_get;
*detect_release = *libdnf5::confc::Vars_detect_release;
*detect_releasevers = *libdnf5::confc::Vars_detect_releasevers;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::Variable ##############

package libdnf5::conf::Variable;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*swig_value_get = *libdnf5::confc::Variable_value_get;
*swig_value_set = *libdnf5::confc::Variable_value_set;
*swig_priority_get = *libdnf5::confc::Variable_priority_get;
*swig_priority_set = *libdnf5::confc::Variable_priority_set;
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_Variable(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_Variable($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::Config ##############

package libdnf5::conf::Config;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
*opt_binds = *libdnf5::confc::Config_opt_binds;
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_Config(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_Config($self);
        delete $OWNER{$self};
    }
}

*load_from_parser = *libdnf5::confc::Config_load_from_parser;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : libdnf5::conf::ConfigMain ##############

package libdnf5::conf::ConfigMain;
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
@ISA = qw( libdnf5::conf::Config libdnf5::conf );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = libdnf5::confc::new_ConfigMain(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        libdnf5::confc::delete_ConfigMain($self);
        delete $OWNER{$self};
    }
}

*get_debuglevel_option = *libdnf5::confc::ConfigMain_get_debuglevel_option;
*get_errorlevel_option = *libdnf5::confc::ConfigMain_get_errorlevel_option;
*get_installroot_option = *libdnf5::confc::ConfigMain_get_installroot_option;
*get_config_file_path_option = *libdnf5::confc::ConfigMain_get_config_file_path_option;
*get_plugins_option = *libdnf5::confc::ConfigMain_get_plugins_option;
*get_pluginpath_option = *libdnf5::confc::ConfigMain_get_pluginpath_option;
*get_pluginconfpath_option = *libdnf5::confc::ConfigMain_get_pluginconfpath_option;
*get_plugin_conf_dir_option = *libdnf5::confc::ConfigMain_get_plugin_conf_dir_option;
*get_persistdir_option = *libdnf5::confc::ConfigMain_get_persistdir_option;
*get_system_state_dir_option = *libdnf5::confc::ConfigMain_get_system_state_dir_option;
*get_transaction_history_dir_option = *libdnf5::confc::ConfigMain_get_transaction_history_dir_option;
*get_transformdb_option = *libdnf5::confc::ConfigMain_get_transformdb_option;
*get_recent_option = *libdnf5::confc::ConfigMain_get_recent_option;
*get_reset_nice_option = *libdnf5::confc::ConfigMain_get_reset_nice_option;
*get_system_cachedir_option = *libdnf5::confc::ConfigMain_get_system_cachedir_option;
*get_cacheonly_option = *libdnf5::confc::ConfigMain_get_cacheonly_option;
*get_keepcache_option = *libdnf5::confc::ConfigMain_get_keepcache_option;
*get_logdir_option = *libdnf5::confc::ConfigMain_get_logdir_option;
*get_log_size_option = *libdnf5::confc::ConfigMain_get_log_size_option;
*get_log_rotate_option = *libdnf5::confc::ConfigMain_get_log_rotate_option;
*get_debugdir_option = *libdnf5::confc::ConfigMain_get_debugdir_option;
*get_varsdir_option = *libdnf5::confc::ConfigMain_get_varsdir_option;
*get_reposdir_option = *libdnf5::confc::ConfigMain_get_reposdir_option;
*get_debug_solver_option = *libdnf5::confc::ConfigMain_get_debug_solver_option;
*get_installonlypkgs_option = *libdnf5::confc::ConfigMain_get_installonlypkgs_option;
*get_group_package_types_option = *libdnf5::confc::ConfigMain_get_group_package_types_option;
*get_optional_metadata_types_option = *libdnf5::confc::ConfigMain_get_optional_metadata_types_option;
*get_use_host_config_option = *libdnf5::confc::ConfigMain_get_use_host_config_option;
*get_installonly_limit_option = *libdnf5::confc::ConfigMain_get_installonly_limit_option;
*get_tsflags_option = *libdnf5::confc::ConfigMain_get_tsflags_option;
*get_assumeyes_option = *libdnf5::confc::ConfigMain_get_assumeyes_option;
*get_assumeno_option = *libdnf5::confc::ConfigMain_get_assumeno_option;
*get_check_config_file_age_option = *libdnf5::confc::ConfigMain_get_check_config_file_age_option;
*get_defaultyes_option = *libdnf5::confc::ConfigMain_get_defaultyes_option;
*get_diskspacecheck_option = *libdnf5::confc::ConfigMain_get_diskspacecheck_option;
*get_localpkg_gpgcheck_option = *libdnf5::confc::ConfigMain_get_localpkg_gpgcheck_option;
*get_gpgkey_dns_verification_option = *libdnf5::confc::ConfigMain_get_gpgkey_dns_verification_option;
*get_obsoletes_option = *libdnf5::confc::ConfigMain_get_obsoletes_option;
*get_exit_on_lock_option = *libdnf5::confc::ConfigMain_get_exit_on_lock_option;
*get_allow_vendor_change_option = *libdnf5::confc::ConfigMain_get_allow_vendor_change_option;
*get_metadata_timer_sync_option = *libdnf5::confc::ConfigMain_get_metadata_timer_sync_option;
*get_disable_excludes_option = *libdnf5::confc::ConfigMain_get_disable_excludes_option;
*get_multilib_policy_option = *libdnf5::confc::ConfigMain_get_multilib_policy_option;
*get_best_option = *libdnf5::confc::ConfigMain_get_best_option;
*get_install_weak_deps_option = *libdnf5::confc::ConfigMain_get_install_weak_deps_option;
*get_allow_downgrade_option = *libdnf5::confc::ConfigMain_get_allow_downgrade_option;
*get_bugtracker_url_option = *libdnf5::confc::ConfigMain_get_bugtracker_url_option;
*get_zchunk_option = *libdnf5::confc::ConfigMain_get_zchunk_option;
*get_color_option = *libdnf5::confc::ConfigMain_get_color_option;
*get_color_list_installed_older_option = *libdnf5::confc::ConfigMain_get_color_list_installed_older_option;
*get_color_list_installed_newer_option = *libdnf5::confc::ConfigMain_get_color_list_installed_newer_option;
*get_color_list_installed_reinstall_option = *libdnf5::confc::ConfigMain_get_color_list_installed_reinstall_option;
*get_color_list_installed_extra_option = *libdnf5::confc::ConfigMain_get_color_list_installed_extra_option;
*get_color_list_available_upgrade_option = *libdnf5::confc::ConfigMain_get_color_list_available_upgrade_option;
*get_color_list_available_downgrade_option = *libdnf5::confc::ConfigMain_get_color_list_available_downgrade_option;
*get_color_list_available_reinstall_option = *libdnf5::confc::ConfigMain_get_color_list_available_reinstall_option;
*get_color_list_available_install_option = *libdnf5::confc::ConfigMain_get_color_list_available_install_option;
*get_color_update_installed_option = *libdnf5::confc::ConfigMain_get_color_update_installed_option;
*get_color_update_local_option = *libdnf5::confc::ConfigMain_get_color_update_local_option;
*get_color_update_remote_option = *libdnf5::confc::ConfigMain_get_color_update_remote_option;
*get_color_search_match_option = *libdnf5::confc::ConfigMain_get_color_search_match_option;
*get_history_record_option = *libdnf5::confc::ConfigMain_get_history_record_option;
*get_history_record_packages_option = *libdnf5::confc::ConfigMain_get_history_record_packages_option;
*get_rpmverbosity_option = *libdnf5::confc::ConfigMain_get_rpmverbosity_option;
*get_strict_option = *libdnf5::confc::ConfigMain_get_strict_option;
*get_skip_broken_option = *libdnf5::confc::ConfigMain_get_skip_broken_option;
*get_skip_unavailable_option = *libdnf5::confc::ConfigMain_get_skip_unavailable_option;
*get_autocheck_running_kernel_option = *libdnf5::confc::ConfigMain_get_autocheck_running_kernel_option;
*get_clean_requirements_on_remove_option = *libdnf5::confc::ConfigMain_get_clean_requirements_on_remove_option;
*get_history_list_view_option = *libdnf5::confc::ConfigMain_get_history_list_view_option;
*get_upgrade_group_objects_upgrade_option = *libdnf5::confc::ConfigMain_get_upgrade_group_objects_upgrade_option;
*get_destdir_option = *libdnf5::confc::ConfigMain_get_destdir_option;
*get_comment_option = *libdnf5::confc::ConfigMain_get_comment_option;
*get_downloadonly_option = *libdnf5::confc::ConfigMain_get_downloadonly_option;
*get_ignorearch_option = *libdnf5::confc::ConfigMain_get_ignorearch_option;
*get_module_platform_id_option = *libdnf5::confc::ConfigMain_get_module_platform_id_option;
*get_module_stream_switch_option = *libdnf5::confc::ConfigMain_get_module_stream_switch_option;
*get_module_obsoletes_option = *libdnf5::confc::ConfigMain_get_module_obsoletes_option;
*get_user_agent_option = *libdnf5::confc::ConfigMain_get_user_agent_option;
*get_countme_option = *libdnf5::confc::ConfigMain_get_countme_option;
*get_protect_running_kernel_option = *libdnf5::confc::ConfigMain_get_protect_running_kernel_option;
*get_build_cache_option = *libdnf5::confc::ConfigMain_get_build_cache_option;
*get_skip_system_repo_lock_option = *libdnf5::confc::ConfigMain_get_skip_system_repo_lock_option;
*get_persistence_option = *libdnf5::confc::ConfigMain_get_persistence_option;
*get_usr_drift_protected_paths_option = *libdnf5::confc::ConfigMain_get_usr_drift_protected_paths_option;
*get_retries_option = *libdnf5::confc::ConfigMain_get_retries_option;
*get_cachedir_option = *libdnf5::confc::ConfigMain_get_cachedir_option;
*get_fastestmirror_option = *libdnf5::confc::ConfigMain_get_fastestmirror_option;
*get_excludeenvs_option = *libdnf5::confc::ConfigMain_get_excludeenvs_option;
*get_excludegroups_option = *libdnf5::confc::ConfigMain_get_excludegroups_option;
*get_excludepkgs_option = *libdnf5::confc::ConfigMain_get_excludepkgs_option;
*get_includepkgs_option = *libdnf5::confc::ConfigMain_get_includepkgs_option;
*get_exclude_from_weak_option = *libdnf5::confc::ConfigMain_get_exclude_from_weak_option;
*get_exclude_from_weak_autodetect_option = *libdnf5::confc::ConfigMain_get_exclude_from_weak_autodetect_option;
*get_proxy_option = *libdnf5::confc::ConfigMain_get_proxy_option;
*get_proxy_username_option = *libdnf5::confc::ConfigMain_get_proxy_username_option;
*get_proxy_password_option = *libdnf5::confc::ConfigMain_get_proxy_password_option;
*get_proxy_auth_method_option = *libdnf5::confc::ConfigMain_get_proxy_auth_method_option;
*get_protected_packages_option = *libdnf5::confc::ConfigMain_get_protected_packages_option;
*get_username_option = *libdnf5::confc::ConfigMain_get_username_option;
*get_password_option = *libdnf5::confc::ConfigMain_get_password_option;
*get_gpgcheck_option = *libdnf5::confc::ConfigMain_get_gpgcheck_option;
*get_pkg_gpgcheck_option = *libdnf5::confc::ConfigMain_get_pkg_gpgcheck_option;
*get_repo_gpgcheck_option = *libdnf5::confc::ConfigMain_get_repo_gpgcheck_option;
*get_gpgcheck_policy_option = *libdnf5::confc::ConfigMain_get_gpgcheck_policy_option;
*get_enabled_option = *libdnf5::confc::ConfigMain_get_enabled_option;
*get_enablegroups_option = *libdnf5::confc::ConfigMain_get_enablegroups_option;
*get_bandwidth_option = *libdnf5::confc::ConfigMain_get_bandwidth_option;
*get_minrate_option = *libdnf5::confc::ConfigMain_get_minrate_option;
*get_ip_resolve_option = *libdnf5::confc::ConfigMain_get_ip_resolve_option;
*get_throttle_option = *libdnf5::confc::ConfigMain_get_throttle_option;
*get_timeout_option = *libdnf5::confc::ConfigMain_get_timeout_option;
*get_max_parallel_downloads_option = *libdnf5::confc::ConfigMain_get_max_parallel_downloads_option;
*get_max_downloads_per_mirror_option = *libdnf5::confc::ConfigMain_get_max_downloads_per_mirror_option;
*get_metadata_expire_option = *libdnf5::confc::ConfigMain_get_metadata_expire_option;
*get_sslcacert_option = *libdnf5::confc::ConfigMain_get_sslcacert_option;
*get_sslverify_option = *libdnf5::confc::ConfigMain_get_sslverify_option;
*get_sslclientcert_option = *libdnf5::confc::ConfigMain_get_sslclientcert_option;
*get_sslclientkey_option = *libdnf5::confc::ConfigMain_get_sslclientkey_option;
*get_proxy_sslcacert_option = *libdnf5::confc::ConfigMain_get_proxy_sslcacert_option;
*get_proxy_sslverify_option = *libdnf5::confc::ConfigMain_get_proxy_sslverify_option;
*get_proxy_sslclientcert_option = *libdnf5::confc::ConfigMain_get_proxy_sslclientcert_option;
*get_proxy_sslclientkey_option = *libdnf5::confc::ConfigMain_get_proxy_sslclientkey_option;
*get_deltarpm_option = *libdnf5::confc::ConfigMain_get_deltarpm_option;
*get_deltarpm_percentage_option = *libdnf5::confc::ConfigMain_get_deltarpm_percentage_option;
*get_skip_if_unavailable_option = *libdnf5::confc::ConfigMain_get_skip_if_unavailable_option;
*load_from_parser = *libdnf5::confc::ConfigMain_load_from_parser;
*load_from_config = *libdnf5::confc::ConfigMain_load_from_config;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


# ------- VARIABLE STUBS --------

package libdnf5::conf;


my %__PLUGIN_API_VERSION_hash;
tie %__PLUGIN_API_VERSION_hash,"libdnf5::conf::PluginAPIVersion", $libdnf5::confc::PLUGIN_API_VERSION;
$PLUGIN_API_VERSION= \%__PLUGIN_API_VERSION_hash;
bless $PLUGIN_API_VERSION, libdnf5::conf::PluginAPIVersion;
*PERSISTDIR = *libdnf5::confc::PERSISTDIR;
*SYSTEM_STATE_DIR = *libdnf5::confc::SYSTEM_STATE_DIR;
*SYSTEM_CACHEDIR = *libdnf5::confc::SYSTEM_CACHEDIR;
*CONF_FILENAME = *libdnf5::confc::CONF_FILENAME;
*CONF_DIRECTORY = *libdnf5::confc::CONF_DIRECTORY;
*VERSIONLOCK_CONF_FILENAME = *libdnf5::confc::VERSIONLOCK_CONF_FILENAME;
*PLUGINS_CONF_DIR = *libdnf5::confc::PLUGINS_CONF_DIR;

my %__PLUGINS_CONF_DIRS_hash;
tie %__PLUGINS_CONF_DIRS_hash,"libdnf5::common::VectorString", $libdnf5::confc::PLUGINS_CONF_DIRS;
$PLUGINS_CONF_DIRS= \%__PLUGINS_CONF_DIRS_hash;
bless $PLUGINS_CONF_DIRS, libdnf5::common::VectorString;

my %__REPOSITORY_CONF_DIRS_hash;
tie %__REPOSITORY_CONF_DIRS_hash,"libdnf5::common::VectorString", $libdnf5::confc::REPOSITORY_CONF_DIRS;
$REPOSITORY_CONF_DIRS= \%__REPOSITORY_CONF_DIRS_hash;
bless $REPOSITORY_CONF_DIRS, libdnf5::common::VectorString;
*REPOS_OVERRIDE_DIR = *libdnf5::confc::REPOS_OVERRIDE_DIR;
*USER_REPOS_OVERRIDE_FILENAME = *libdnf5::confc::USER_REPOS_OVERRIDE_FILENAME;
*TRANSACTION_LOCK_FILEPATH = *libdnf5::confc::TRANSACTION_LOCK_FILEPATH;
*SYSTEM_REPO_LOCK_FILENAME = *libdnf5::confc::SYSTEM_REPO_LOCK_FILENAME;

my %__VARS_DIRS_hash;
tie %__VARS_DIRS_hash,"libdnf5::common::VectorString", $libdnf5::confc::VARS_DIRS;
$VARS_DIRS= \%__VARS_DIRS_hash;
bless $VARS_DIRS, libdnf5::common::VectorString;
*VENDOR_CONF_DIR = *libdnf5::confc::VENDOR_CONF_DIR;

my %__GROUP_PACKAGE_TYPES_hash;
tie %__GROUP_PACKAGE_TYPES_hash,"libdnf5::common::VectorString", $libdnf5::confc::GROUP_PACKAGE_TYPES;
$GROUP_PACKAGE_TYPES= \%__GROUP_PACKAGE_TYPES_hash;
bless $GROUP_PACKAGE_TYPES, libdnf5::common::VectorString;

my %__INSTALLONLYPKGS_hash;
tie %__INSTALLONLYPKGS_hash,"libdnf5::common::VectorString", $libdnf5::confc::INSTALLONLYPKGS;
$INSTALLONLYPKGS= \%__INSTALLONLYPKGS_hash;
bless $INSTALLONLYPKGS, libdnf5::common::VectorString;
*BUGTRACKER = *libdnf5::confc::BUGTRACKER;
*METADATA_TYPE_COMPS = *libdnf5::confc::METADATA_TYPE_COMPS;
*METADATA_TYPE_FILELISTS = *libdnf5::confc::METADATA_TYPE_FILELISTS;
*METADATA_TYPE_OTHER = *libdnf5::confc::METADATA_TYPE_OTHER;
*METADATA_TYPE_PRESTO = *libdnf5::confc::METADATA_TYPE_PRESTO;
*METADATA_TYPE_UPDATEINFO = *libdnf5::confc::METADATA_TYPE_UPDATEINFO;
*METADATA_TYPE_ALL = *libdnf5::confc::METADATA_TYPE_ALL;
*METADATA_TYPE_APPSTREAM = *libdnf5::confc::METADATA_TYPE_APPSTREAM;
*OPTIONAL_METADATA_TYPES = *libdnf5::confc::OPTIONAL_METADATA_TYPES;
1;
