// Copyright 2017 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.modular;

using fuchsia.auth;

/// An instance of this service is exposed to agents in their namespace.
[Discoverable]
protocol AgentContext {
    /// DEPRECATED: ComponentContext is now available in the
    /// namespace/environment for Modules.
    GetComponentContext(request<ComponentContext> request);

    /// The auth token manager this Agent may use for accessing external services.
    GetTokenManager(request<fuchsia.auth.TokenManager> request);
};
