/**
 * Slack Node - Version 2.1
 * Discriminator: resource=user, operation=getProfile
 */


interface Credentials {
  slackApi: CredentialReference;
  slackOAuth2Api: CredentialReference;
}

/** Get a user's profile */
export type SlackV21UserGetProfileParams = {
  resource: 'user';
  operation: 'getProfile';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * The ID of the user to get information about
 * @default {"mode":"list","value":""}
 */
    user?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };
};

export type SlackV21UserGetProfileOutput = {
  avatar_hash?: string;
  display_name?: string;
  display_name_normalized?: string;
  email?: string;
  first_name?: string;
  image_1024?: string;
  image_192?: string;
  image_24?: string;
  image_32?: string;
  image_48?: string;
  image_512?: string;
  image_72?: string;
  image_original?: string;
  is_custom_image?: boolean;
  last_name?: string;
  phone?: string;
  real_name?: string;
  real_name_normalized?: string;
  skype?: string;
  status_emoji?: string;
  status_emoji_display_info?: Array<{
    display_url?: string;
    emoji_name?: string;
    unicode?: string;
  }>;
  status_expiration?: number;
  status_text?: string;
  status_text_canonical?: string;
  title?: string;
};

export type SlackV21UserGetProfileNode = {
  type: 'n8n-nodes-base.slack';
  version: 2.1;
  credentials?: Credentials;
  config: NodeConfig<SlackV21UserGetProfileParams>;
  output?: Items<SlackV21UserGetProfileOutput>;
};