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

#ifndef __interfaces_H__
#define __interfaces_H__

#include <stdint.h>
#include <objc/objc.h>
int32_t cproxyinterfaces_Error_Err(int32_t refnum);

int32_t cproxyinterfaces_I_Rand(int32_t refnum);

int32_t cproxyinterfaces_I3_F(int32_t refnum);

void cproxyinterfaces_LargerI_AnotherFunc(int32_t refnum);

int32_t cproxyinterfaces_LargerI_Rand(int32_t refnum);

int32_t cproxyinterfaces_SameI_Rand(int32_t refnum);

void cproxyinterfaces_WithParam_HasParam(int32_t refnum, char p0);

#endif
