import { State } from '../shared/State';
import { IdObjectSkeletonInterface, NoIdObjectSkeletonInterface, PagedResult } from './ApiTypes';
export type IdmConfigStub = IdObjectSkeletonInterface & {
    _id: string;
    pid: string;
    factoryPid: string | null;
};
export type IdmConfigStubs = IdObjectSkeletonInterface & {
    _id: '';
    configurations: IdmConfigStub[];
};
/**
 * Get all IDM configuration stubs
 * @returns {Promise} a promise that resolves to all IDM configuration stubs
 */
export declare function getConfigStubs({ state, }: {
    state: State;
}): Promise<IdmConfigStubs>;
/**
 * Get all IDM config entities
 * @returns {Promise} a promise that resolves to all IDM config entities
 */
export declare function getConfigEntities({ state, }: {
    state: State;
}): Promise<PagedResult<IdObjectSkeletonInterface>>;
/**
 * Get IDM config entities by type
 * @param {string} type the desired type of config entity
 * @returns {Promise} a promise that resolves to an object containing all IDM config entities of the desired type
 */
export declare function getConfigEntitiesByType({ type, state, }: {
    type: string;
    state: State;
}): Promise<PagedResult<NoIdObjectSkeletonInterface>>;
/**
 * Get an IDM config entity
 * @param {string} entityId the desired config entity
 * @returns {Promise<unknown>} a promise that resolves to an IDM config entity
 */
export declare function getConfigEntity({ entityId, state, }: {
    entityId: string;
    state: State;
}): Promise<any>;
/**
 * Put IDM config entity
 * @param {object} params config parameters
 * @param {string} params.entityId config entity id
 * @param {string} params.entityData config entity object
 * @param {boolean} params.wait delay the response until an OSGi service event confirms the change has been consumed by the corresponding service or the request times out.
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an IDM config entity
 */
export declare function putConfigEntity({ entityId, entityData, wait, state, }: {
    entityId: string;
    entityData: string | IdObjectSkeletonInterface;
    wait?: boolean;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
/**
 * Delete IDM config entity
 * @param {string} entityId config entity id
 * @returns {Promise<IdObjectSkeletonInterface>} a promise that resolves to an IDM config entity
 */
export declare function deleteConfigEntity({ entityId, state, }: {
    entityId: string;
    state: State;
}): Promise<IdObjectSkeletonInterface>;
//# sourceMappingURL=IdmConfigApi.d.ts.map