// Objective-C API for talking to underscores Go package.
//   gobind -lang=objc underscores
//
// File is generated by gobind. Do not edit.

#ifndef __Underscore_pkg_H__
#define __Underscore_pkg_H__

@import Foundation;
#include "ref.h"
#include "Universe.objc.h"


@class Underscore_pkgUnderscore_struct;

@interface Underscore_pkgUnderscore_struct : NSObject <goSeqRefInterface> {
}
@property(strong, readonly) id _ref;

- (nonnull instancetype)initWithRef:(id)ref;
- (nonnull instancetype)init;
@property (nonatomic) NSString* _Nonnull underscore_field;
@end

@interface Underscore_pkg : NSObject
+ (long) underscore_var;
+ (void) setUnderscore_var:(long)v;

@end

FOUNDATION_EXPORT void Underscore_pkgUnderscore_func(void);

#endif
