// Package node contains implementation of managing a node and
// applications running on the node.
package node

import (
	public "veyron2/services/mgmt/node"
)

// Config is an RPC API to the config service.
type Config interface {
	// Set sets the value for key.
	Set(key, value string) error
}

// Node describes a node manager internally. In addition to the public
// Node interface, it implements the config functionality.
type Node interface {
	public.Node
	Config
}
