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


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

/** Get many channels in a Slack team */
export type SlackV21UserGetAllParams = {
  resource: 'user';
  operation: 'getAll';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 50
 */
    limit?: number | Expression<number>;
};

export type SlackV21UserGetAllOutput = {
  color?: string;
  deleted?: boolean;
  id?: string;
  is_admin?: boolean;
  is_app_user?: boolean;
  is_bot?: boolean;
  is_email_confirmed?: boolean;
  is_owner?: boolean;
  is_primary_owner?: boolean;
  is_restricted?: boolean;
  is_ultra_restricted?: boolean;
  name?: string;
  profile?: {
    always_active?: boolean;
    avatar_hash?: string;
    display_name?: string;
    display_name_normalized?: string;
    first_name?: string;
    huddle_state?: string;
    huddle_state_expiration_ts?: number;
    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;
    team?: string;
    title?: string;
  };
  real_name?: string;
  team_id?: string;
  tz?: string;
  tz_label?: string;
  tz_offset?: number;
  updated?: number;
  who_can_share_contact_card?: string;
};

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