// 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;

NS_ASSUME_NONNULL_BEGIN

@interface ImagePickerTestImages : NSObject

@property(class, copy, readonly) NSData *JPGTestData;
@property(class, copy, readonly) NSData *PNGTestData;
@property(class, copy, readonly) NSData *GIFTestData;

@end

NS_ASSUME_NONNULL_END
