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

#ifndef __Issue10788_H__
#define __Issue10788_H__

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


@class Issue10788TestStruct;
@protocol Issue10788TestInterface;
@class Issue10788TestInterface;

@protocol Issue10788TestInterface <NSObject>
- (void)doSomeWork:(Issue10788TestStruct* _Nullable)s;
- (void)multipleUnnamedParams:(long)p0 p1:(NSString* _Nullable)p1 日本:(int64_t)日本;
@end

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

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
@property (nonatomic) NSString* _Nonnull value;
@end

@class Issue10788TestInterface;

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

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (void)doSomeWork:(Issue10788TestStruct* _Nullable)s;
- (void)multipleUnnamedParams:(long)p0 p1:(NSString* _Nullable)p1 日本:(int64_t)日本;
@end

#endif
