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

#ifndef __Doc_H__
#define __Doc_H__

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


@class DocNoDoc;
@class DocS;
@class DocS2;
@protocol DocI;
@class DocI;

@protocol DocI <NSObject>
/**
 * IM is a method.
 */
- (void)im;
@end

/**
 * A generic comment with <HTML>.
 */
@interface DocNoDoc : NSObject <goSeqRefInterface> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
@end

/**
 * S is a struct.
 */
@interface DocS : NSObject <goSeqRefInterface> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
/**
 * NewS is a constructor.
 */
- (nullable instancetype)init;
/**
 * SF is a field.
 */
@property (nonatomic) NSString* _Nonnull sf;
/**
 * Anonymous field.
 */
@property (nonatomic) DocS2* _Nullable s2;
/**
 * Multiple fields.
 */
@property (nonatomic) NSString* _Nonnull f1;
/**
 * Multiple fields.
 */
@property (nonatomic) NSString* _Nonnull f2;
/**
 * After is another method.
 */
- (void)after;
- (void)before;
@end

/**
 * S2 is a struct.
 */
@interface DocS2 : NSObject <goSeqRefInterface> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
@end

/**
 * C is a constant.
 */
FOUNDATION_EXPORT const BOOL DocC;

@interface Doc : NSObject
/**
 * A group of vars.
 */
+ (double) noDocVar;
+ (void) setNoDocVar:(double)v;

/**
 * A specific var.
 */
+ (NSString* _Nonnull) specific;
+ (void) setSpecific:(NSString* _Nonnull)v;

/**
 * V is a var.
 */
+ (NSString* _Nonnull) v;
+ (void) setV:(NSString* _Nonnull)v;

@end

/**
 * F is a function.
 */
FOUNDATION_EXPORT void DocF(void);

/**
 * NewS is a constructor.
 */
FOUNDATION_EXPORT DocS* _Nullable DocNewS(void);

@class DocI;

/**
 * I is an interface.
 */
@interface DocI : NSObject <goSeqRefInterface, DocI> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
/**
 * IM is a method.
 */
- (void)im;
@end

#endif
