import { Http } from '@angular/http';
import { Observable } from 'rxjs';
import { DAFService, BaseResponse, BaseModeledResponse, Pageable } from '@lowcodeunit/common';
import { FlowConfig, Device, FlowModuleOption, FlowModule } from '@lowcodeunit/core';
export declare class FlowService extends DAFService {
    protected rootUrl: string;
    constructor(http: Http);
    Create(config: FlowConfig): Observable<BaseModeledResponse<string>>;
    Get(id: string): Observable<BaseModeledResponse<FlowConfig>>;
    GetDevice(flowId: string, environment: string, moduleId: string, deviceId: string): Observable<BaseModeledResponse<Pageable<Device>>>;
    GetFlowStatus(flowId: string, environment: string): Observable<BaseModeledResponse<any>>;
    GetModuleStatus(flowId: string, environment: string, application: string, service: string, settings: any): Observable<BaseResponse>;
    List(state: string, page: number, pageSize: number): Observable<BaseModeledResponse<Pageable<FlowConfig>>>;
    ListDevices(flowId: string, environment: string, moduleId: string, page: number, pageSize: number): Observable<BaseModeledResponse<Pageable<Device>>>;
    LoadModuleOptions(flowId?: string): Observable<BaseModeledResponse<FlowModuleOption[]>>;
    Provision(flowId: string, environment: string): Observable<BaseResponse>;
    Unprovision(flowId: string, environment: string): Observable<BaseResponse>;
    RegisterDevice(flowId: string, environment: string, moduleId: string, device: Device): Observable<BaseModeledResponse<Device>>;
    UnregisterDevices(flowId: string, environment: string, moduleId: string, deviceIds: string[]): Observable<BaseResponse>;
    SaveModule(flowId: string, module: FlowModule): Observable<BaseResponse>;
    UpdateDevices(flowId: string, environment: string, moduleId: string, devices: any[]): Observable<BaseModeledResponse<Pageable<Device>>>;
    UpdateFlow(flowConfig: FlowConfig): Observable<BaseResponse>;
}
