import type { OptionalArgument } from '../helpers'; import type { ChannelID, CursorPaginationEnabled, LocaleAware, OptionalTeamAssignable, TargetTeam, TimelinePaginationEnabled, TokenOverridable } from './common'; export interface Channel { /** @description ID of conversation. */ channel: string; } export interface Emails { /** @description List of emails to receive this invite. Either `emails` or `user_ids` must be provided. */ emails: string[]; user_ids?: never; } interface IncludeAllMetadata { /** @description Return all metadata associated with messages. Defaults to `false`. */ include_all_metadata?: boolean; } export interface InviteID { /** @description ID of the invite. */ invite_id: string; } export interface IsPrivate { /** @description Whether the channel should be private. */ is_private?: boolean; } interface MessageSpecifier extends Channel { /** @description Unique identifier of message. */ ts: string; } interface Message { /** @description A message to send to the user who requested the invite. */ message?: string; } export interface UserIDs { /** List of user IDs to receive this invite. Either `emails` or `user_ids` must be provided. */ user_ids: string[]; emails?: never; } export interface Users { /** @description A comma separated list of user IDs. Up to 1000 users may be listed. */ users: string; } export type ConversationsAcceptSharedInviteArguments = TokenOverridable & OptionalTeamAssignable & (ChannelID | InviteID) & IsPrivate & { /** * @description Name of the channel. If the channel does not exist already in your workspace, * this name is the one that the channel will take. */ channel_name: string; /** @description Whether you'd like to use your workspace's free trial to begin using Slack Connect. */ free_trial_accepted?: boolean; }; export interface ConversationsApproveSharedInviteArguments extends InviteID, TargetTeam, TokenOverridable { } export interface ConversationsArchiveArguments extends Channel, TokenOverridable { } export interface ConversationsCloseArguments extends Channel, TokenOverridable { } export interface ConversationsCreateArguments extends IsPrivate, TokenOverridable, OptionalTeamAssignable { /** @description Name of the public or private channel to create. */ name: string; } export interface ConversationsDeclineSharedInviteArguments extends InviteID, TargetTeam, TokenOverridable { } export interface ConversationsExternalInvitePermissionsSetArguments extends Channel, Required, TokenOverridable { /** @description The type of action be taken: `upgrade` or `downgrade`. */ action: 'downgrade' | 'upgrade'; } export interface ConversationsHistoryArguments extends Channel, IncludeAllMetadata, TokenOverridable, CursorPaginationEnabled, TimelinePaginationEnabled { } export interface ConversationsInfoArguments extends Channel, TokenOverridable, LocaleAware { /** @description Set to `true` to include the member count for the specified conversation. Defaults to `false`. */ include_num_members?: boolean; } export interface ConversationsInviteArguments extends Channel, Users, TokenOverridable { /** * @description When set to `true` and multiple user IDs are provided, continue inviting the valid ones while * disregarding invalid IDs. Defaults to `false`. */ force?: boolean; } export type ConversationsInviteSharedArguments = Channel & TokenOverridable & (Emails | UserIDs) & { /** @description Whether invite is to an external limited member. Defaults to `true`. */ external_limited?: boolean; }; export interface ConversationsJoinArguments extends Channel, TokenOverridable { } export interface ConversationsKickArguments extends Channel, TokenOverridable { user: string; } export interface ConversationsLeaveArguments extends Channel, TokenOverridable { } export type ConversationsListArguments = OptionalArgument; export type ConversationsListConnectInvitesArguments = OptionalArgument; export interface ConversationsMarkArguments extends MessageSpecifier, TokenOverridable { } export interface ConversationsMembersArguments extends Channel, TokenOverridable, CursorPaginationEnabled { } export type ConversationsOpenArguments = (Channel | Users) & TokenOverridable & { /** * @description Do not create a direct message or multi-person direct message. * This is used to see if there is an existing dm or mpdm. */ prevent_creation?: boolean; /** @description Indicates you want the full IM channel definition in the response. */ return_im?: boolean; }; export interface ConversationsRenameArguments extends Channel, TokenOverridable { /** @description New name for conversation. */ name: string; } export interface ConversationsRepliesArguments extends MessageSpecifier, IncludeAllMetadata, TokenOverridable, CursorPaginationEnabled, TimelinePaginationEnabled { } export interface ConversationsRequestSharedInviteApproveArguments extends InviteID, Partial, TokenOverridable { /** * @description Whether the invited team will have post-only permissions in the channel. * Will override the value on the requested invite. */ is_external_limited?: boolean; /** @description Optional additional messaging to attach to the invite approval message. */ message?: { /** * @description When `true`, will override the user specified message. Otherwise, `text` will be appended to the * user specified message on the invite request. */ is_override: boolean; /** @description Text to include along with the email invite. */ text: string; }; } export interface ConversationsRequestSharedInviteDenyArguments extends InviteID, Message, TokenOverridable { } export type ConversationsRequestSharedInviteListArguments = OptionalArgument; export interface ConversationsSetPurposeArguments extends Channel, TokenOverridable { /** @description A new, specialer purpose. */ purpose: string; } export interface ConversationsSetTopicArguments extends Channel, TokenOverridable { /** @description The new topic string. Does not support formatting or linkification. */ topic: string; } export interface ConversationsUnarchiveArguments extends Channel, TokenOverridable { } export {}; //# sourceMappingURL=conversations.d.ts.map