// 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 "ref.h"
#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
