import { GroupEntity, UserEntity } from '@backstage/catalog-model';
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
import { MicrosoftGraphProviderConfig } from './config';
/**
 * Customize the ingested User entity
 *
 * @public
 */
export type UserTransformer = (user: MicrosoftGraph.User, userPhoto?: string) => Promise<UserEntity | undefined>;
/**
 * Customize the ingested organization Group entity
 *
 * @public
 */
export type OrganizationTransformer = (organization: MicrosoftGraph.Organization) => Promise<GroupEntity | undefined>;
/**
 * Customize the ingested Group entity
 *
 * @public
 */
export type GroupTransformer = (group: MicrosoftGraph.Group, groupPhoto?: string) => Promise<GroupEntity | undefined>;
/**
 * Customize the MSGraph Provider Config Dynamically
 *
 * Transforming fields that are not used for each scheduled ingestion (e.g., id, schedule)
 * will have no effect.
 *
 * @public
 */
export type ProviderConfigTransformer = (provider: MicrosoftGraphProviderConfig) => Promise<MicrosoftGraphProviderConfig>;
