import { State } from '../shared/State';
import { AmConfigEntityInterface, PagedResult } from './ApiTypes';
export type AmServiceSkeleton = AmConfigEntityInterface & {
    [key: string]: any;
};
export interface ServiceNextDescendentResponse {
    result: ServiceNextDescendent;
}
export interface ServiceNextDescendent {
    [key: string]: any;
}
export interface FullService extends AmServiceSkeleton {
    nextDescendents?: ServiceNextDescendent[];
}
/**
 * Get a list of services
 * @param {boolean} globalConfig true if the global list of services is requested, false otherwise. Default: false.
 * @returns {Promise<ServiceListItem[]>} a promise resolving to an array of service list items.
 */
export declare function getListOfServices({ globalConfig, state, }: {
    globalConfig: boolean;
    state: State;
}): Promise<PagedResult<AmServiceSkeleton>>;
/**
 * Get service
 * @param {string} serviceId servide id
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<AmService>} a promise resolving to a service object
 */
export declare function getService({ serviceId, globalConfig, state, }: {
    serviceId: string;
    globalConfig?: boolean;
    state: State;
}): Promise<AmServiceSkeleton>;
/**
 * Get a service's decendents (applicable for structured services only, e.g. SocialIdentityProviders)
 * @param {string} serviceId service id
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<ServiceNextDescendent[]>} a promise resolving to an array of the service's next decendents
 */
export declare function getServiceDescendents({ serviceId, globalConfig, state, }: {
    serviceId: string;
    globalConfig?: boolean;
    state: State;
}): Promise<ServiceNextDescendent[]>;
/**
 * Create or update a service
 * @param {string} serviceId service id
 * @param {AmService} serviceData service configuration
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<AmService>} a promise resolving to a service object
 */
export declare function putService({ serviceId, serviceData, globalConfig, state, }: {
    serviceId: string;
    serviceData: AmServiceSkeleton;
    globalConfig?: boolean;
    state: State;
}): Promise<AmServiceSkeleton>;
/**
 * Create or update a service next descendent instance
 * @param {string} serviceId service id
 * @param {string} serviceType service type
 * @param {string} serviceNextDescendentId service instance id
 * @param {ServiceNextDescendent} serviceNextDescendentData service next descendent configuration
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
 */
export declare function putServiceNextDescendent({ serviceId, serviceType, serviceNextDescendentId, serviceNextDescendentData, globalConfig, state, }: {
    serviceId: string;
    serviceType: string;
    serviceNextDescendentId: string;
    serviceNextDescendentData: ServiceNextDescendent;
    globalConfig?: boolean;
    state: State;
}): Promise<ServiceNextDescendent>;
/**
 * Delete service
 * @param {string} serviceId service id
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<AmService>} a promise resolving to a service object
 */
export declare function deleteService({ serviceId, globalConfig, state, }: {
    serviceId: string;
    globalConfig?: boolean;
    state: State;
}): Promise<AmServiceSkeleton>;
/**
 * Delete service next descendent
 * @param {string} serviceId service id
 * @param {string} serviceType service type
 * @param {string} serviceNextDescendentId service instance id
 * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
 * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
 */
export declare function deleteServiceNextDescendent({ serviceId, serviceType, serviceNextDescendentId, globalConfig, state, }: {
    serviceId: string;
    serviceType: string;
    serviceNextDescendentId: string;
    globalConfig?: boolean;
    state: State;
}): Promise<ServiceNextDescendent>;
//# sourceMappingURL=ServiceApi.d.ts.map