/**
 * Slack Node - Version 2.1
 * Discriminator: resource=message, operation=delete
 */


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

export type SlackV21MessageDeleteParams = {
  resource: 'message';
  operation: 'delete';
  authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * Delete Message From
 */
    select?: 'channel' | 'user' | Expression<string>;
/**
 * The Slack channel to delete the message from
 * @displayOptions.show { select: ["channel"] }
 * @default {"mode":"list","value":""}
 */
    channelId?: { __rl: true; mode: 'list' | 'id' | 'url'; value: string; cachedResultName?: string };
/**
 * User
 * @displayOptions.show { select: ["user"] }
 * @default {"mode":"list","value":""}
 */
    user?: { __rl: true; mode: 'list' | 'id'; value: string; cachedResultName?: string };
/**
 * Timestamp of the message to delete
 */
    timestamp: number | Expression<number>;
};

export type SlackV21MessageDeleteOutput = {
  channel?: string;
  message_timestamp?: string;
  ok?: boolean;
};

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