import { SdkClient } from "../common/sdk-client";
import { AgentManagementModels } from "./agent-models";
/**
 * API defining resources and operations for managing agents.
 *
 * Generating a Boarding Configuration action is an asynchronous operation therefore it may take a while.
 * In case Boarding Configuration is not generated, try to read the configuration again after a couple of seconds.
 *
 * @export
 * @class AgentManagementClient
 * @extends {SdkClient}
 */
export declare class AgentManagementClient extends SdkClient {
    private _baseUrl;
    /**
     * * Agents
     *
     * Creates a new agent.
     *
     * @param {AgentManagementModels.Agent} agent
     * @returns
     *
     * @memberOf AgentManagementClient
     */
    PostAgent(agent: AgentManagementModels.Agent): Promise<AgentManagementModels.Agent>;
    /**
     * * Agents
     *
     * Gets the agents for given filter.
     *
     * @param {{
     *         page?: number;
     *         size?: number;
     *         sort?: string;
     *         filter?: string;
     *     }} [params]
     * @returns {Promise<AgentManagementModels.PagedAgent>}
     *
     * @memberOf AgentManagementClient
     */
    GetAgents(params?: {
        page?: number;
        size?: number;
        sort?: string;
        filter?: string;
    }): Promise<AgentManagementModels.PagedAgent>;
    /**
     * * Agents
     *
     * Gets the agent for the given agent id.
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.Agent>}
     *
     * @memberOf AgentManagementClient
     */
    GetAgent(id: string): Promise<AgentManagementModels.Agent>;
    /**
     * * Agents
     *
     * Updates the agent for the given agent id with given parameters.
     *
     * @param {string} id
     * @param {AgentManagementModels.AgentUpdate} agent
     * @param {{ ifMatch: string }} params
     * @returns {Promise<AgentManagementModels.Agent>}
     *
     * @memberOf AgentManagementClient
     */
    PutAgent(id: string, agent: AgentManagementModels.AgentUpdate, params: {
        ifMatch: string;
    }): Promise<AgentManagementModels.Agent>;
    /**
     * * Agents
     *
     * Deletes the agent for the given agent id.
     *
     * @param {string} id
     * @param {{ ifMatch: string }} params
     * @returns {Promise<AgentManagementModels.Agent>}
     *
     * @memberOf AgentManagementClient
     */
    DeleteAgent(id: string, params: {
        ifMatch: string;
    }): Promise<AgentManagementModels.Agent>;
    /**
     * * Agents
     *
     * Get online status for the agent with specified agent id.
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.OnlineStatus>}
     *
     * @memberOf AgentManagementClient
     */
    GetAgentOnlineStatus(id: string): Promise<AgentManagementModels.OnlineStatus>;
    /**
     * * DataSourceConfiguration
     *
     * Fetches data source configuration object.
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.DataSourceConfiguration>}
     *
     * @memberOf AgentManagementClient
     */
    GetDataSourceConfiguration(id: string): Promise<AgentManagementModels.DataSourceConfiguration>;
    /**
     * * DataSourceConfiguration
     *
     * Creates or updates data source conifguration object.
     *
     * @param {string} id
     * @param {AgentManagementModels.DataSourceConfiguration} dataSourceConfiguration
     * @param {{ ifMatch: string }} params
     * @returns {Promise<AgentManagementModels.DataSourceConfiguration>}
     *
     * @memberOf AgentManagementClient
     */
    PutDataSourceConfiguration(id: string, dataSourceConfiguration: AgentManagementModels.DataSourceConfiguration, params: {
        ifMatch: string;
    }): Promise<AgentManagementModels.DataSourceConfiguration>;
    /**
     * * Boarding
     *
     * Gets boarding configuration
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.Configuration>}
     *
     * @memberOf AgentManagementClient
     */
    GetBoardingConfiguration(id: string, params?: {
        retry?: number;
    }): Promise<AgentManagementModels.Configuration>;
    /**
     * * Boarding
     *
     * Offboards the agent
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.OnboardingStatus>}
     *
     * @memberOf AgentManagementClient
     */
    OffboardAgent(id: string): Promise<AgentManagementModels.OnboardingStatus>;
    /**
     * * Boarding
     *
     * Gets onboarding status.
     *
     * @param {string} id
     * @returns {Promise<AgentManagementModels.OnboardingStatus>}
     *
     * @memberOf AgentManagementClient
     */
    GetOnboardingStatus(id: string): Promise<AgentManagementModels.OnboardingStatus>;
}
