import { Service } from '../Core/index';
import { StringAnyMap } from '../CommonTypes';
import { ExistingUser } from './DelegatingTypes';
/**
* Delegating authentication
*
* This authentication delegates authentication to an external auth provider
*
When a zetapush client handshakes with a delegated authentication, the 'token' field given by the client is sent to the configured remote server as part of the URL
*
The response must be in JSON format
* Each key of the response will be considered a user information field name
*
The handshake from the server will return the primary key in a field named 'login' (regardless of the actual key name you might have chosen)
* */
export declare class Delegating extends Service {
/**
* Get deployment type associated to Delegating service
* @return {string}
*/
static readonly DEPLOYMENT_TYPE: string;
/**
* Get default deployment id associated to Delegating service
* @return {string}
*/
static readonly DEFAULT_DEPLOYMENT_ID: string;
/**
* End-user API for the delegating authentication
*
* Provisioning verbs.
* @access public
* */
/**
* Get user info
*
* Retrieves cached user info or (if missing) eagerly creates a zetapush key for the user.
* The returned field 'zetapushKey' is a unique and permanent ID identifying a user in a sandbox.
* @access public
* */
userInfo(body: ExistingUser): Promise;
}