#import <Foundation/Foundation.h>
#import <CarPlay/CarPlay.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>
#import "RNCPStore.h"

typedef void(^SelectedResultBlock)(void);

@interface RNCarPlay : RCTEventEmitter<RCTBridgeModule, CPInterfaceControllerDelegate, CPTabBarTemplateDelegate, CPNowPlayingTemplateObserver> {
    CPInterfaceController *interfaceController;
    CPWindow *window;
    SelectedResultBlock selectedResultBlock;
    BOOL isNowPlayingActive;
}

@property (nonatomic, retain) CPInterfaceController * _Nullable interfaceController;
@property (nonatomic, retain) CPWindow * _Nullable window;
@property (nonatomic, copy) SelectedResultBlock _Nullable selectedResultBlock;
@property (nonatomic) BOOL isNowPlayingActive;

+ (void) connectWithInterfaceController:(CPInterfaceController * _Nonnull)interfaceController window:(CPWindow * _Nonnull)window;
+ (void) disconnect;
- (NSArray<CPListSection *> * _Nonnull) parseSections:(CPListTemplate * _Nullable)listTemplate sections:(NSArray * _Nonnull)sections;

@end
