//
//  ALCMPError.h
//  AppLovinSDK
//
//  Created by Thomas So on 7/26/23.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, ALCMPErrorCode)
{
    /**
     * Indicates that an unspecified error has occurred.
     */
    ALCMPErrorCodeUnspecified = -1,
    
    /**
     * Indicates that the CMP has not been integrated correctly.
     */
    ALCMPErrorCodeIntegrationError = 1,
    
    /**
     * Indicates that the CMP form is unavailable.
     */
    ALCMPErrorCodeFormUnavailable = 2,
    
    /**
     * Indicates that the CMP form is not required.
     */
    ALCMPErrorCodeFormNotRequired = 3,
};

@interface ALCMPError : NSObject

/**
 * The error code for this error.
 */
@property (nonatomic, assign, readonly) ALCMPErrorCode code;

/**
 * The error message for this error.
 */
@property (nonatomic, copy, readonly) NSString *message;

/**
 * The error code returned by the CMP.
 */
@property (nonatomic, assign, readonly) NSInteger cmpCode;

/**
 * The error message returned by the CMP.
 */
@property (nonatomic, copy, readonly) NSString *cmpMessage;

- (instancetype)init NS_UNAVAILABLE;
- (instancetype)new NS_UNAVAILABLE;

@end

NS_ASSUME_NONNULL_END
