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

#ifndef __Issue12403_H__
#define __Issue12403_H__

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


@protocol Issue12403Parsable;
@class Issue12403Parsable;

@protocol Issue12403Parsable <NSObject>
- (NSString*)fromJSON:(NSString*)jstr;
- (NSString*)toJSON:(NSError**)error;
@end

@class Issue12403Parsable;

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

- (instancetype)initWithRef:(id)ref;
- (NSString*)fromJSON:(NSString*)jstr;
- (NSString*)toJSON:(NSError**)error;
@end

#endif
