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

library fuchsia.component;

using child_name = string:MAX_CHILD_NAME_LENGTH;
using collection_name = string:MAX_COLLECTION_NAME_LENGTH;
using environment_name = string:MAX_ENVIRONMENT_NAME_LENGTH;
using event_name = string:MAX_EVENT_NAME_LENGTH;
using resolver_name = string:MAX_RESOLVER_NAME_LENGTH;
using runner_name = string:MAX_RUNNER_NAME_LENGTH;
using url_scheme = string:MAX_URL_SCHEME_LENGTH;
