/**
 * Slack Node - Version 2.1
 * Discriminator: resource=channel, operation=get
 */


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

/** Get information about a channel */
export type SlackV21ChannelGetParams = {
  resource: 'channel';
  operation: 'get';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * The Slack channel to get
 * @default {"mode":"list","value":""}
 */
    channelId?: { __rl: true; mode: 'list' | 'id' | 'url'; value: string; cachedResultName?: string };
/**
 * Options
 * @default {}
 */
    options?: {
    /** Include Num of Members
     * @default false
     */
    includeNumMembers?: boolean | Expression<boolean>;
  };
};

export type SlackV21ChannelGetOutput = {
  context_team_id?: string;
  created?: number;
  creator?: string;
  id?: string;
  is_archived?: boolean;
  is_channel?: boolean;
  is_ext_shared?: boolean;
  is_general?: boolean;
  is_group?: boolean;
  is_im?: boolean;
  is_member?: boolean;
  is_mpim?: boolean;
  is_org_shared?: boolean;
  is_pending_ext_shared?: boolean;
  is_private?: boolean;
  is_shared?: boolean;
  last_read?: string;
  name?: string;
  name_normalized?: string;
  parent_conversation?: null;
  previous_names?: Array<string>;
  properties?: {
    canvas?: {
      file_id?: string;
      is_empty?: boolean;
      quip_thread_id?: string;
    };
    tabs?: Array<{
      id?: string;
      label?: string;
      type?: string;
    }>;
    tabz?: Array<{
      type?: string;
    }>;
  };
  purpose?: {
    creator?: string;
    last_set?: number;
    value?: string;
  };
  shared_team_ids?: Array<string>;
  topic?: {
    creator?: string;
    last_set?: number;
    value?: string;
  };
  unlinked?: number;
  updated?: number;
};

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