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

#ifndef __Basictypes_H__
#define __Basictypes_H__

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


FOUNDATION_EXPORT const BOOL BasictypesABool;
FOUNDATION_EXPORT const double BasictypesAFloat;
FOUNDATION_EXPORT NSString* const BasictypesALongString;
FOUNDATION_EXPORT const int32_t BasictypesARune;
FOUNDATION_EXPORT NSString* const BasictypesAString;
FOUNDATION_EXPORT const int64_t BasictypesAnInt;
FOUNDATION_EXPORT const int64_t BasictypesAnInt2;

FOUNDATION_EXPORT BOOL BasictypesBool(BOOL p0);

FOUNDATION_EXPORT NSData* BasictypesByteArrays(NSData* x);

FOUNDATION_EXPORT BOOL BasictypesError(NSError** error);

FOUNDATION_EXPORT BOOL BasictypesErrorPair(long* ret0_, NSError** error);

FOUNDATION_EXPORT void BasictypesInts(int8_t x, int16_t y, int32_t z, int64_t t, long u);

#endif
