export interface ClusterProviderV1 { register ( clusterProvider ) : void ; list ( ) : ReadonlyArray < ClusterProviderV1 . ClusterProvider > ; } export namespace ClusterProviderV1 { export type ClusterProviderAction = 'create' | 'configure' ; export interface ClusterProvider { readonly id : string ; readonly displayName : string ; readonly supportedActions : ClusterProviderAction [ ] ; next ( wizard , action , message ) : void ; } export interface Wizard { showPage ( htmlBody ) : Promise < void > ; } export interface Observable < T > { subscribe ( observer ) : void ; } export interface Observer < T > { onNext ( value ) : Promise < boolean > ; } export type Sequence < T > = T | Thenable < T > | Observable < T > ; }