import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
import { Observable } from 'rxjs';
import { DecisionCluster } from '../model/decisionCluster';
import { DecisionFlow } from '../model/decisionFlow';
import { DecisionFlowStatus } from '../model/decisionFlowStatus';
import { Configuration } from '../configuration';
import { DecisionFlowServiceInterface } from './decisionFlow.serviceInterface';
import * as i0 from "@angular/core";
export declare class DecisionFlowService implements DecisionFlowServiceInterface {
    protected httpClient: HttpClient;
    protected basePath: string;
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    encoder: HttpParameterCodec;
    constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
    private addToHttpParams;
    private addToHttpParamsRecursive;
    /**
     * Provides a Decision Flow with all the node data. A simple select of the data. No post-select processing.
     * @param FlowID
     * @param AutoGenerateClusters
     * @param debug
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlow(FlowID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<DecisionFlow>;
    getDecisionFlow(FlowID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<DecisionFlow>>;
    getDecisionFlow(FlowID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<DecisionFlow>>;
    /**
     * Provides a Decision Flow with all the nodes starting at the supplied node Id on down. A simple select of the data. No post-select processing.
     * @param FlowID
     * @param NodeID
     * @param AutoGenerateClusters
     * @param debug
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowAtNode(FlowID?: number, NodeID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<DecisionFlow>;
    getDecisionFlowAtNode(FlowID?: number, NodeID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<DecisionFlow>>;
    getDecisionFlowAtNode(FlowID?: number, NodeID?: number, AutoGenerateClusters?: boolean, debug?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<DecisionFlow>>;
    /**
     * Provides a Decision Flow with all the nodes starting at the supplied node Id on down, with the DOT Graph.
     * @param FlowID
     * @param NodeID
     * @param Debug
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowAtNodeWithDotGraph(FlowID?: number, NodeID?: number, Debug?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<DecisionFlow>;
    getDecisionFlowAtNodeWithDotGraph(FlowID?: number, NodeID?: number, Debug?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<DecisionFlow>>;
    getDecisionFlowAtNodeWithDotGraph(FlowID?: number, NodeID?: number, Debug?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<DecisionFlow>>;
    /**
     * Gets all the pretermined clusters for a flow.
     * @param FlowID
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowClusters(FlowID?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionCluster>>;
    getDecisionFlowClusters(FlowID?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionCluster>>>;
    getDecisionFlowClusters(FlowID?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionCluster>>>;
    /**
     * Gets all the clusters for a flow. Can auto-generate clusters if necessary.
     * @param FlowID
     * @param AutoGenerate
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowClustersAutoGenerate(FlowID?: number, AutoGenerate?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionCluster>>;
    getDecisionFlowClustersAutoGenerate(FlowID?: number, AutoGenerate?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionCluster>>>;
    getDecisionFlowClustersAutoGenerate(FlowID?: number, AutoGenerate?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionCluster>>>;
    /**
     *
     * @param Context
     * @param ContextKey
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowContextClusters(Context?: string, ContextKey?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionCluster>>;
    getDecisionFlowContextClusters(Context?: string, ContextKey?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionCluster>>>;
    getDecisionFlowContextClusters(Context?: string, ContextKey?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionCluster>>>;
    /**
     * Gets a list of decision nodes which can be applied to the context.
     * @param Context
     * @param ContextKey
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowForContext(Context?: string, ContextKey?: number, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionFlow>>;
    getDecisionFlowForContext(Context?: string, ContextKey?: number, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionFlow>>>;
    getDecisionFlowForContext(Context?: string, ContextKey?: number, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionFlow>>>;
    /**
     * Returs a list of all possible Decision Flow status values.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowStatusList(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionFlowStatus>>;
    getDecisionFlowStatusList(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionFlowStatus>>>;
    getDecisionFlowStatusList(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionFlowStatus>>>;
    /**
     * Provides a Decision Flow with all the nodes and with the DOT Graph.
     * @param FlowID
     * @param AutoGenerateClusters
     * @param Debug
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlowWithDotGraph(FlowID?: number, AutoGenerateClusters?: boolean, Debug?: boolean, observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<DecisionFlow>;
    getDecisionFlowWithDotGraph(FlowID?: number, AutoGenerateClusters?: boolean, Debug?: boolean, observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<DecisionFlow>>;
    getDecisionFlowWithDotGraph(FlowID?: number, AutoGenerateClusters?: boolean, Debug?: boolean, observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<DecisionFlow>>;
    /**
     * Gets all the decision flows available.
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
     * @param reportProgress flag to report request and response progress.
     */
    getDecisionFlows(observe?: 'body', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<Array<DecisionFlow>>;
    getDecisionFlows(observe?: 'response', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpResponse<Array<DecisionFlow>>>;
    getDecisionFlows(observe?: 'events', reportProgress?: boolean, options?: {
        httpHeaderAccept?: 'application/json';
        context?: HttpContext;
    }): Observable<HttpEvent<Array<DecisionFlow>>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DecisionFlowService, [null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DecisionFlowService>;
}
