import { DataSourceConfiguration, Mapping } from "../../..";
import { AssetManagementModels } from "../asset/asset-models";
import { SdkClient } from "../common/sdk-client";
import { MindConnectApiModels } from "./mcapi-models";
/**
 * MindConnect API Client
 *
 * @export
 * @class MindConnectApiClient
 * @extends {SdkClient}
 */
export declare class MindConnectApiClient extends SdkClient {
    private _baseUrl;
    /**
     * * diagnostic
     *
     * * Register agent for diagnostic activation
     *
     * @param {string} agentId
     * @returns {Promise<MindConnectApiModels.DiagnosticActivation>}
     *
     * @memberOf MindConnectApiClient
     */
    PostDiagnosticActivation(agentId: string): Promise<MindConnectApiModels.DiagnosticActivation>;
    /**
     * * diagnostic
     *
     * Get the list of diagnostic activations
     *
     * @param {{
     *         size?: number;
     *         page?: number;
     *         sort?: string;
     *     }} [optional]
     * @returns {Promise<MindConnectApiModels.PagedDiagnosticActivation>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDiagnosticActivations(optional?: {
        size?: number;
        page?: number;
        sort?: string;
    }): Promise<MindConnectApiModels.PagedDiagnosticActivation>;
    /**
     *
     * *diagnostic
     *
     * Put diagnostic api client
     *
     * @param {string} id
     * @param {MindConnectApiModels.DiagnosticActivationStatus} diagnosticStatus
     * @returns {Promise<MindConnectApiModels.DiagnosticActivation>}
     *
     * @memberOf MindConnectApiClient
     */
    PutDiagnosticActivation(id: string, diagnosticStatus: MindConnectApiModels.DiagnosticActivationStatus): Promise<MindConnectApiModels.DiagnosticActivation>;
    /**
     * * diagnostic
     *
     * Get current diagnostic activation
     *
     * @param {string} id
     * @returns {Promise<MindConnectApiModels.DiagnosticActivation>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDiagnosticActivation(id: string): Promise<MindConnectApiModels.DiagnosticActivation>;
    /**
     * *diagnostic
     *
     * Delete diagnostic activation.
     *
     * @param {string} id
     * @returns
     *
     * @memberOf MindConnectApiClient
     */
    DeleteDiagnosticActivation(id: string): Promise<Object | undefined>;
    /**
     * *diagnostic
     *
     * Get messages
     *
     * @param {string} id
     * @param {{ filter?: string; size?: number; page?: number; sort?: string }} [optional]
     * @returns {Promise<MindConnectApiModels.PagedDiagnosticInformationMessages>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDiagnosticActivationMessages(id: string, optional?: {
        filter?: string;
        size?: number;
        page?: number;
        sort?: string;
    }): Promise<MindConnectApiModels.PagedDiagnosticInformationMessages>;
    /**
     * * diagnostic
     *
     * @deprecated please use GetDiagnosticActivationMessages
     *
     * Get list of diagnostic informations
     *
     * @param {{
     *         filter?: string;
     *         size?: number;
     *         page?: number;
     *         sort?: string;
     *     }} [optional]
     * @returns {Promise<MindConnectApiModels.PagedDiagnosticInformationMessages>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDiagnosticInformation(optional?: {
        filter?: string;
        size?: number;
        page?: number;
        sort?: string;
    }): Promise<MindConnectApiModels.PagedDiagnosticInformationMessages>;
    /**
     *
     * * diagnostic
     *
     * Deletes all diagnostic activations
     *
     *
     * @memberOf MindConnectApiClient
     */
    DeleteAllDiagnosticActivations(): Promise<void>;
    /**
     * * diagnostic
     *
     * Get all diagnostic information paged (for the CLI)
     *
     * @param {string} agentId
     * @param {(x: MindConnectApiModels.DiagnosticInformation[], ...args: any[]) => any} [callback]
     * @param {*} [callbackOptions]
     * @param {boolean} [skipToLast=true]
     * @returns
     *
     * @memberOf MindConnectApiClient
     */
    GetAllDiagnosticInformation(agentId: string, callback?: (x: MindConnectApiModels.DiagnosticInformation[], ...args: any[]) => any, callbackOptions?: any, skipToLast?: boolean): Promise<MindConnectApiModels.PagedDiagnosticInformation>;
    /**
     * * mappings
     *
     * Create single mapping
     *
     * @param {MindConnectApiModels.Mapping} mapping
     * @returns
     *
     * @memberOf MindConnectApiClient
     */
    PostDataPointMapping(mapping: MindConnectApiModels.Mapping, optional?: {
        ignoreCodes?: number[];
        noAgentValidation?: boolean;
    }): Promise<Object | undefined>;
    /**
     *
     * * mappings
     *
     * Get mappings
     *
     * @param {{
     *         filter?: string;
     *         size?: number;
     *         page?: number;
     *         sort?: string;
     *     }} [optional]
     * @returns {Promise<MindConnectApiModels.PagedMapping>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDataPointMappings(optional?: {
        filter?: string;
        size?: number;
        page?: number;
        sort?: string;
    }): Promise<MindConnectApiModels.PagedMapping>;
    /**
     * * mappings
     *
     * Get a mapping by id
     *
     * @param {string} id
     * @returns {Promise<MindConnectApiModels.Mapping>}
     *
     * @memberOf MindConnectApiClient
     */
    GetDataPointMapping(id: string): Promise<MindConnectApiModels.Mapping>;
    /**
     *
     * Delete a mapping
     *
     * @param {string} id
     * @returns
     *
     * @memberOf MindConnectApiClient
     */
    DeleteDataMapping(id: string, optional?: {
        ignoreCodes: number[];
    }): Promise<Object | undefined>;
    /**
     * Generates a Data Source Configuration for specified Asset Type
     *
     * you still have to generate the mappings (or use ConfigureAgentForAssetId method)
     *
     *
     * @param {AssetManagementModels.AssetTypeResource} assetType
     * @param {("NUMERICAL" | "DESCRIPTIVE")} [mode="DESCRIPTIVE"]
     * * NUMERICAL MODE will use names like CF0001 for configurationId , DS0001,DS0002,DS0003... for data source ids and DP0001, DP0002... for dataPointIds
     * * DESCRIPTIVE MODE will use names like CF-assetName for configurationId , DS-aspectName... for data source ids and DP-variableName for data PointIds (default)
     * @returns {Promise<DataSourceConfiguration>}
     *
     * @memberOf MindconnectApiClient
     */
    GenerateDataSourceConfiguration(assetType: AssetManagementModels.AssetTypeResource, mode?: "NUMERICAL" | "DESCRIPTIVE"): DataSourceConfiguration;
    private CreateUniqueDataPoints;
    getDuplicates(x: Array<any>): Array<any>;
    /**
     *  * Generate automatically the mappings for the specified target assetid
     *
     * !Important! this only works if you have created the data source coniguration automatically
     *
     * @param {DataSourceConfiguration} dataSourceConfiguration
     * @param {string} agentId
     * @param {string} targetAssetId
     * @returns {Mapping[]}
     *
     * @memberOf MindConnectApiClient
     */
    GenerateMappings(dataSourceConfiguration: DataSourceConfiguration, agentId: string, targetAssetId: string): Mapping[];
    /**
     *
     * Ingest data to mindsphere
     * ! this is not public in all mindsphere regions yet.
     *
     * @param {string} senderId
     * @param {MindConnectApiModels.IngestionTimeseries} message
     * @returns {Promise<Response>}
     *
     * @memberOf MindConnectApiClient
     */
    Ingest(senderId: string, message: MindConnectApiModels.Ingestion): Promise<Response>;
}
