import { State } from '../shared/State';
import { type AmConfigEntityInterface, EntityType, PagedResult } from './ApiTypes';
export type PolicyAgentType = '2.2_Agent';
export type GatewayAgentType = 'IdentityGatewayAgent';
export type JavaAgentType = 'J2EEAgent';
export type OAuth2ThingType = 'OAuth2Thing';
export type RemoteConsentAgentType = 'RemoteConsentAgent';
export type SharedAgentType = 'SharedAgent';
export type SoapSTSAgentType = 'SoapSTSAgent';
export type SoftwarePublisherType = 'SoftwarePublisher';
export type WebAgentType = 'WebAgent';
export type AgentType = PolicyAgentType | GatewayAgentType | JavaAgentType | OAuth2ThingType | RemoteConsentAgentType | SharedAgentType | SoapSTSAgentType | SoftwarePublisherType | WebAgentType | EntityType;
export type AgentSkeleton = AmConfigEntityInterface;
export type AgentGroupSkeleton = AmConfigEntityInterface;
/**
 * Get agent types
 * @returns {Promise} a promise that resolves to an object containing an array of agent types
 */
export declare function getAgentTypes({ state }: {
    state: State;
}): Promise<any>;
/**
 * Get agents
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @returns {Promise<PagedResult<AgentSkeleton>>} a promise that resolves to an object containing an array of agent objects of the specified type
 */
export declare function getAgentsByType({ agentType, state, }: {
    agentType: AgentType;
    state: State;
}): Promise<PagedResult<AgentSkeleton>>;
/**
 * Get all agents
 * @param {boolean} globalConfig true if the global agents is the target of the operation, false otherwise. default: false
 * @returns {Promise<PagedResult<AgentSkeleton>>} a promise that resolves to an object containing an array of agent objects
 */
export declare function getAgents({ state, globalConfig, }: {
    state: State;
    globalConfig?: boolean;
}): Promise<PagedResult<AgentSkeleton>>;
/**
 * Find agent by id
 * @param {string} agentId agent id
 * @returns {Promise<AgentSkeleton[]>} a promise that resolves to an array with one or zero agent objects
 */
export declare function findAgentById({ agentId, state, }: {
    agentId: string;
    state: State;
}): Promise<AgentSkeleton[]>;
/**
 * Find agent by id
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @param {string} agentId agent id
 * @returns {Promise<AgentSkeleton[]>} a promise that resolves to an array with one or zero agent objects
 */
export declare function findAgentByTypeAndId({ agentType, agentId, state, }: {
    agentType: AgentType;
    agentId: string;
    state: State;
}): Promise<AgentSkeleton[]>;
/**
 * Get agent
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @param {string} agentId agent id
 * @param {boolean} globalConfig true if global agent is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<AgentSkeleton>} a promise that resolves to an object containing an agent object of the specified type
 */
export declare function getAgentByTypeAndId({ agentType, agentId, globalConfig, state, }: {
    agentType: AgentType;
    agentId: string;
    globalConfig: boolean;
    state: State;
}): Promise<any>;
/**
 * Put agent
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @param {string} agentId agent id
 * @param {AgentSkeleton} agentData agent object
 * @param {boolean} globalConfig true if global agent is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<AgentSkeleton>} a promise that resolves to an object containing an agent object
 */
export declare function putAgentByTypeAndId({ agentType, agentId, agentData, globalConfig, state, }: {
    agentType: AgentType;
    agentId: string;
    agentData: AgentSkeleton;
    globalConfig: boolean;
    state: State;
}): Promise<AgentSkeleton>;
/**
 * Put agent group
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @param {string} agentGroupId agent group id
 * @param {AgentGroupSkeleton} agentGroupData agent group object
 * @returns {Promise<AgentGroupSkeleton>} a promise that resolves to an object containing an agent group object
 */
export declare function putAgentGroupByTypeAndId({ agentType, agentGroupId, agentGroupData, state, }: {
    agentType: AgentType;
    agentGroupId: string;
    agentGroupData: AgentGroupSkeleton;
    state: State;
}): Promise<AgentGroupSkeleton>;
/**
 * Delete agent
 * @param {string} agentType agent type (IdentityGatewayAgent, J2EEAgent, WebAgent, etc.)
 * @param {string} agentId agent id
 * @returns {Promise<AgentSkeleton>} a promise that resolves to an object containing an agent object
 */
export declare function deleteAgentByTypeAndId({ agentType, agentId, state, }: {
    agentType: AgentType;
    agentId: string;
    state: State;
}): Promise<AgentSkeleton>;
/**
 * Get all agent groups
 * @returns {Promise<PagedResult<AgentGroupSkeleton>>} a promise that resolves to an object containing an array of agent group objects
 */
export declare function getAgentGroups({ state, }: {
    state: State;
}): Promise<PagedResult<AgentGroupSkeleton>>;
//# sourceMappingURL=AgentApi.d.ts.map