/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

#pragma once

#import <ARKit/ARSession.h>

#include "ArSessionArKitInternal.h"

@interface ArKitDelegate : NSObject <ARSessionDelegate>
- (id)initWithFrameHandler:(OpenVulkano::AR::ArKit::ArSessionArKitInternal*)session;
- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame;
- (void)sessionWasInterrupted:(ARSession *)session;
- (void)sessionInterruptionEnded:(ARSession *)session;
- (void)session:(ARSession *)session didFailWithError:(NSError *)error;
- (BOOL)sessionShouldAttemptRelocalization:(ARSession *)session;
- (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera;
- (void)session:(ARSession *)session didUpdateAnchors:(NSArray<__kindof ARAnchor*>*)anchors;
@end
