// 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 "ref.h"
#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* _Nullable BasictypesByteArrays(NSData* _Nullable x);

FOUNDATION_EXPORT BOOL BasictypesError(NSError* _Nullable* error);

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

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

#endif
