import { IResult, IResultList, IFetchClient } from '../core';
import { IExternalIdentity } from './IExternalIdentity';
/**
 * This class allwos for managing external identifiers.
 */
export declare class IdentityService {
    private baseUrl;
    private propertyName;
    private client;
    constructor(client: IFetchClient);
    /**
     * Gets the list of identities filtered by parameters.
     *
     * @returns Response wrapped in [[IResultList]]
     *
     * @param {object} filter Object containing filters for querying identity.
     *
     * **Example**
     * ```typescript
     *
     *  const filter: object = {
     *     pageSize: 100,
     *     withTotalPages: true
     *   };
     *
     *   (async () => {
     *     const {data, res, paging} = await identityService.list(filter);
     *   })();
     * ```
     */
    list(managedObjectId: string): Promise<IResultList<IExternalIdentity>>;
    /**
     * Creates a new identity.
     *
     * @param {IExternalIdentity} identity Identity object with mandantory fragments.
     *
     * @returns Response wrapped in [[IResult]]
     *
     * **Example**
     * ```typescript
     *   const linkedManagedObjectId = '123';
     *   const identity: IExternalIdentity = {
     *      type: 'type',
     *      externalId: '1',
     *      managedObject: {
     *        id: linkedManagedObjectId
     *      }
     *    };
     *
     *    (async () => {
     *      const {data, res} = await identityService.create(identity);
     *   })();
     * ```
     */
    create(identity: IExternalIdentity): Promise<IResult<IExternalIdentity>>;
    /**
     * Gets the details of an identity.
     *
     * @param {IExternalIdentity} identity Identity object with mandantory fragments.
     *
     * @returns Response wrapped in [[IResult]]
     *
     * **Example**
     * ```typescript
     *
     *    const identity: IExternalIdentity = {
     *      type: 'type',
     *      externalId: '1'
     *    };
     *
     *    (async () => {
     *      const {data, res} = await identityService.detail(identity);
     *   })();
     * ```
     */
    detail(identity: IExternalIdentity): Promise<IResult<IExternalIdentity>>;
    /**
     * Removes an identity with given id.
     *
     * @returns Response wrapped in [[IResult]]
     *
     * @param {IExternalIdentity} identity Identity object with mandantory fragments.
     *
     * **Example**
     * ```typescript
     *
     *   const identity: IExternalIdentity = {
     *      type: 'type',
     *      externalId: '1'
     *    };
     *
     *    (async () => {
     *      const {data, res} = await identityService.delete(identity);
     *   })();
     * ```
     */
    delete(identity: IExternalIdentity): Promise<IResult<IExternalIdentity>>;
    private fetch;
    private getExternalIdsOfGlobalIdUrl;
    private getExternalIdUrl;
}
//# sourceMappingURL=IdentityService.d.ts.map