/*
 * This is one of the header files of Dynamsoft Capture Vision SDK - Core module.
 *
 * Copyright © Dynamsoft Corporation. All rights reserved.
 */

#import <Foundation/Foundation.h>
#import <DynamsoftCaptureVisionBundle/DSIntermediateResultUnitType.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * The DSObservationParameters class is used to set filter conditions for the DSIntermediateResultReceiver, so that
   only intermediate results meeting specific conditions will be called back
 */
NS_SWIFT_NAME(ObservationParameters)
@interface DSObservationParameters : NSObject
/**
 * Adds observed task name to be notified when relevant results are available.
 *
 * @param taskName Specify a task name to add to the observation list.
 */
- (void)addObservedTask:(NSString *)taskName;
/**
 * Remove the observed task name so that intermediate results generated by the task are not notified.
 *
 * @param taskName Specify a task name to remove from the observation list.
 */
- (void)removeObservedTask:(NSString *)taskName;
/**
 * Check whether the specified task was observed.
 *
 * @param taskName Specify a task name to check the observation state.
 *
 * @return A BOOL value that indicates whether the specified task is observed.
 */
- (BOOL)isTaskObserved:(NSString *)taskName;

@property (nonatomic, assign) DSIntermediateResultUnitType resultUnitTypesOnlyForInput;

@end

NS_ASSUME_NONNULL_END
