// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import <Foundation/Foundation.h>
#import <camera/CameraPlugin.h>
#import <camera/FLTThreadSafeEventChannel.h>
#import <camera/FLTThreadSafeFlutterResult.h>
#import <camera/FLTThreadSafeMethodChannel.h>
#import <camera/FLTThreadSafeTextureRegistry.h>
#import <camera/QueueHelper.h>

FOUNDATION_EXPORT double cameraVersionNumber;
FOUNDATION_EXPORT const unsigned char cameraVersionString[];
