import { Connection, StandardSchema } from 'jsforce'; import { IntegrationConfig } from './config'; export type ResourceIteratee = (each: T) => Promise | void; /** * An APIClient maintains authentication state and provides an interface to * third party data APIs. * * It is recommended that integrations wrap provider data APIs to provide a * place to handle error responses and implement common patterns for iterating * resources. */ export declare class APIClient { readonly config: IntegrationConfig; constructor(config: IntegrationConfig); conn: Connection; /** * Set up the connection to Salesforce with oauth info */ setUpClient(): void; verifyAuthentication(): Promise; buildUserFilterConditions(): any; /** * Iterates each user resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iterateUsers(iteratee: ResourceIteratee): Promise; /** * Iterates each user role resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iterateUserRoles(iteratee: ResourceIteratee): Promise; /** * Iterates each permission set resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iteratePermissionSets(iteratee: ResourceIteratee): Promise; /** * Iterates each permission set assignment resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iteratePermissionSetAssignments(iteratee: ResourceIteratee): Promise; /** * Iterates each group resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iterateGroups(iteratee: ResourceIteratee): Promise; /** * Iterates each group members resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iterateGroupMembers(iteratee: ResourceIteratee): Promise; /** * Iterates each profile resource in the provider. * * @param iteratee receives each resource to produce entities/relationships */ iterateProfiles(iteratee: ResourceIteratee): Promise; } export declare function createAPIClient(config: IntegrationConfig): APIClient;