import { IIdentified, IResult, IResultList, Service } from '../core';
import { ITenantLoginOption } from './ITenantLoginOptions';
/**
 * @description
 * This service allows to get tenant login options.
 */
export declare class TenantLoginOptionsService extends Service<ITenantLoginOption> {
    protected baseUrl: string;
    protected listUrl: string;
    protected propertyName: string;
    /**
     * Gets the details of login option.
     *
     * @param entityIdentityOrId Login option's id or login option object.
     *
     * @returns Returns promise object that is resolved with the ITenantLoginOption wrapped by IResult.
     *
     * **Example**
     * ```typescript
     *
     *    const tenantLoginOptionId: string = 'uniqueTenantLoginOptionId';
     *
     *    (async () => {
     *      const {data, res} = await tenantLoginOptionsService.detail(tenantLoginOptionId);
     *   })();
     * ```
     */
    detail(entityIdentityOrId: string | IIdentified): Promise<IResult<ITenantLoginOption>>;
    /**
     * Gets the list of tenant's login options filtered by parameters.
     *
     * @param filter Object containing filters for querying tenant's login options.
     *
     * @returns Returns promise object that is resolved with the ITenantLoginOption wrapped by IResultList.
     *
     * **Example**
     * ```typescript
     *
     *  const filter: object = {
     *     tenantId: '1111111'
     *   };
     *
     *   (async () => {
     *     const {data, res, paging} = await tenantLoginOptionsService.list(filter);
     *   })();
     * ```
     */
    list(filter?: object): Promise<IResultList<ITenantLoginOption>>;
    /**
     * Gets the list of all tenant's login options for current tenant.
     *
     * @returns Returns promise object that is resolved with the ITenantLoginOption wrapped by IResultList.
     *
     * **Example**
     * ```typescript
     *
     *   (async () => {
     *     const {data, res, paging} = await tenantLoginOptionsService.listForCurrentTenant();
     *   })();
     * ```
     */
    listForCurrentTenant(): Promise<IResultList<ITenantLoginOption>>;
    /**
     * Gets the list of all tenant's login options for management tenant.
     *
     * @returns Returns promise object that is resolved with the ITenantLoginOption wrapped by IResultList.
     *
     * **Example**
     * ```typescript
     *
     *   (async () => {
     *     const {data, res, paging} = await tenantLoginOptionsService.listForManagement();
     *   })();
     * ```
     */
    listForManagement(): Promise<IResultList<ITenantLoginOption>>;
    /**
     * Creates a new tenant login option.
     *
     * @param entity ITenantLoginOption object.
     *
     * @returns Returns promise object that is resolved with the details of newly created tenant login option.
     *
     * **Example**
     * ```typescript
     *
     *  const tenantLoginOption: ITenantLoginOption = {
     *    grantType: "PASSWORD",
     *    providerName: "Cumulocity",
     *    type: "BASIC",
     *    userManagementSource: "INTERNAL",
     *    visibleOnLoginPage: true
     *  };
     *
     *  (async () => {
     *    const {data, res} = await tenantLoginOptionsService.create(tenantLoginOption);
     *  })();
     * ```
     */
    create(entity: ITenantLoginOption): Promise<IResult<ITenantLoginOption>>;
    /**
     * Updates tenant's login option data.
     *
     * @param entity ITenantLoginOption object.
     *
     * @returns Returns promise object that is resolved with the saved tenant's login option object.
     *
     * **Example**
     * ```typescript
     *
     *  const tenantLoginOption: ITenantLoginOption = {
     *    grantType: "PASSWORD",
     *    id: "2eff9a0b-e376-4ce8-a0f1-0a07cef8a8a1",
     *    providerName: "Cumulocity",
     *    type: "BASIC",
     *    userManagementSource: "INTERNAL",
     *    visibleOnLoginPage: true
     *  };
     *
     *  (async () => {
     *    const {data, res} = await tenantLoginOptionsService.update(tenantLoginOption);
     *  })();
     * ```
     */
    update(entity: ITenantLoginOption): Promise<IResult<ITenantLoginOption>>;
    /**
     * Update tenant's login option data if id exists in object, otherwise create new entity.
     *
     * @param entity ITenantLoginOption object.
     *
     * @returns Returns promise object that is resolved with the saved tenant's login option object.
     *
     * **Example**
     * ```typescript
     *
     *  const tenantLoginOption: ITenantLoginOption = {
     *    grantType: "PASSWORD",
     *    id: "2eff9a0b-e376-4ce8-a0f1-0a07cef8a8a1",
     *    providerName: "Cumulocity",
     *    type: "BASIC",
     *    userManagementSource: "INTERNAL",
     *    visibleOnLoginPage: true
     *  };
     *
     *  (async () => {
     *    const {data, res} = await tenantLoginOptionsService.save(tenantLoginOption);
     *  })();
     * ```
     */
    save(entity: ITenantLoginOption): Promise<IResult<ITenantLoginOption>>;
    /**
     * Removes tenant's login option.
     *
     * @param entityOrId Tenant's login option's id or tenant's login option object.
     *
     * @returns Returns promise object that is resolved with the IResult of null.
     *
     * **Example**
     * ```typescript
     *
     *    const tenantLoginOptionId: string = 'uniqueTenantLoginOptionId';
     *
     *    (async () => {
     *      const {data, res} = await tenantLoginOptionsService.delete(tenantLoginOptionId);
     *   })();
     * ```
     */
    delete(entityOrId: string | IIdentified): Promise<IResult<null>>;
}
//# sourceMappingURL=TenantLoginOptionsService.d.ts.map