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

#ifndef __GO_interfaces_H__
#define __GO_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_Interfaces_SomeMethod(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
