// Copyright (c) 2023, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// A library that contains the argument and file formats for implementing a
/// native assets CLI, e.g. a `build.dart` script.
library native_assets_cli;

export 'src/api/asset.dart';
export 'src/api/build_config.dart';
export 'src/api/build_mode.dart';
export 'src/api/build_output.dart';
export 'src/api/dependencies.dart';
export 'src/api/ios_sdk.dart';
export 'src/api/link_mode.dart';
export 'src/api/link_mode_preference.dart';
export 'src/api/metadata.dart';
export 'src/api/target.dart';
