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

// A container for component-scoped services. This contains any and all
// services needed by any sort of Module/Agent.
[Discoverable]
interface IntelligenceServices {
    // These are just here for illustrative purposes, and are not a complete
    // list.
    1: GetContextReader(request<ContextReader> context_reader);
    2: GetContextWriter(request<ContextWriter> context_writer);

    3: GetProposalPublisher(request<ProposalPublisher> proposal_publisher);

    4: RegisterQueryHandler(QueryHandler query_handler);
};
