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

#ifndef __Vars_H__
#define __Vars_H__

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


@class VarsS;
@protocol VarsI;
@class VarsI;

@protocol VarsI <NSObject>
@end

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

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
@end

@interface Vars : NSObject
+ (BOOL) aBool;
+ (void) setABool:(BOOL)v;

+ (double) aFloat;
+ (void) setAFloat:(double)v;

+ (float) aFloat32;
+ (void) setAFloat32:(float)v;

+ (double) aFloat64;
+ (void) setAFloat64:(double)v;

+ (NSString* _Nonnull) aString;
+ (void) setAString:(NSString* _Nonnull)v;

+ (VarsS* _Nullable) aStructPtr;
+ (void) setAStructPtr:(VarsS* _Nullable)v;

+ (long) anInt;
+ (void) setAnInt:(long)v;

+ (int16_t) anInt16;
+ (void) setAnInt16:(int16_t)v;

+ (int32_t) anInt32;
+ (void) setAnInt32:(int32_t)v;

+ (int64_t) anInt64;
+ (void) setAnInt64:(int64_t)v;

+ (int8_t) anInt8;
+ (void) setAnInt8:(int8_t)v;

+ (id<VarsI> _Nullable) anInterface;
+ (void) setAnInterface:(id<VarsI> _Nullable)v;

@end

@class VarsI;

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

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
@end

#endif
