#ifndef IOS_CHROME_APP_DEFERRED_INITIALIZATION_QUEUE_H_
#define IOS_CHROME_APP_DEFERRED_INITIALIZATION_QUEUE_H_
#import <Foundation/Foundation.h>
#import "base/ios/block_types.h"
#import "base/time/time.h"
@class DeferredInitializationBlock;
@interface DeferredInitializationQueue : NSObject
+ (instancetype)sharedInstance;
- (instancetype)initWithDelayBetweenBlocks:(base::TimeDelta)betweenBlocks
delayBeforeFirstBlock:(base::TimeDelta)beforeFirstBlock
NS_DESIGNATED_INITIALIZER;
- (instancetype)init;
- (DeferredInitializationBlock*)enqueueBlock:(ProceduralBlock)block;
- (void)runBlock:(DeferredInitializationBlock*)block;
- (void)cancelBlock:(DeferredInitializationBlock*)block;
- (void)cancelBlocks:(NSArray<DeferredInitializationBlock*>*)deferredBlocks;
@property(nonatomic, readonly) NSUInteger length;
@end
#endif