| // Copyright 2019 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.castsetup; | 
 |  | 
 | /// Interface that allows watching of changes to the cast setup state. | 
 | @discoverable | 
 | protocol StateWatcher { | 
 |     /// Will immediately return on first call; subsequent calls will return on | 
 |     /// change. | 
 |     Watch() -> (struct { | 
 |         state State; | 
 |     }); | 
 | }; | 
 |  | 
 | /// Enum of different possible setup states | 
 | type State = strict enum { | 
 |     /// State is not determined. | 
 |     UNKNOWN = 0; | 
 |  | 
 |     /// Setup is not complete and is in progress. | 
 |     IN_PROGRESS = 1; | 
 |  | 
 |     /// Configured once but disconnected for now. | 
 |     OFFLINE = 2; | 
 |  | 
 |     /// Setup is complete and device is connected. | 
 |     COMPLETE = 3; | 
 | }; |