@virtuals-protocol/game-twitter-node
Version:
Strongly typed, full-featured, light, versatile yet powerful Virtual Twitter API v2 client for Node.js. Forked from twitter-api-v2.
163 lines (162 loc) • 4.42 kB
TypeScript
import { CoordinateV1, MediaEntityV1, TweetEntitiesV1 } from './entities.v1.types';
export declare enum EDirectMessageEventTypeV1 {
Create = "message_create",
WelcomeCreate = "welcome_message"
}
export interface MessageCreateEventV1 {
target: {
recipient_id: string;
};
message_data: MessageCreateDataV1;
custom_profile_id?: string;
}
export interface MessageCreateDataV1 {
text: string;
attachment?: MessageCreateAttachmentV1;
quick_reply?: MessageCreateQuickReplyV1;
ctas?: MessageCreateCtaV1[];
}
export interface MessageCreateCtaV1 {
type: 'web_url';
url: string;
label: string;
/** Only when messages are retrieved from API */
tco_url?: string;
}
export interface MessageCreateQuickReplyOptionV1 {
label: string;
description?: string;
metadata?: string;
}
export interface MessageCreateQuickReplyV1 {
type: 'options';
options: MessageCreateQuickReplyOptionV1[];
}
export type MessageCreateAttachmentV1 = {
type: 'media';
media: {
id: string;
};
} | {
type: 'location';
location: MessageCreateLocationV1;
};
export type MessageCreateLocationV1 = {
type: 'shared_coordinate';
shared_coordinate: {
coordinates: CoordinateV1;
};
} | {
type: 'shared_place';
shared_place: {
place: {
id: string;
};
};
};
export interface SendDMV1Params extends MessageCreateDataV1 {
recipient_id: string;
custom_profile_id?: string;
}
export interface CreateDMEventV1Args {
event: CreateDMEventV1;
}
export interface CreateDMEventV1 {
type: EDirectMessageEventTypeV1;
[EDirectMessageEventTypeV1.Create]?: MessageCreateEventV1;
}
export interface GetDmListV1Args {
cursor?: string;
count?: number;
}
export interface CreateWelcomeDMEventV1Args {
[EDirectMessageEventTypeV1.WelcomeCreate]: {
name: string;
message_data: MessageCreateDataV1;
};
}
export interface DirectMessageCreateV1 extends ReceivedDirectMessageEventV1 {
type: EDirectMessageEventTypeV1.Create;
[EDirectMessageEventTypeV1.Create]: ReceivedMessageCreateEventV1;
}
export interface ReceivedDirectMessageEventV1 {
type: EDirectMessageEventTypeV1;
id: string;
created_timestamp: string;
initiated_via?: {
tweet_id?: string;
welcome_message_id?: string;
};
}
export interface ReceivedMessageCreateEventV1 {
target: {
recipient_id: string;
};
sender_id: string;
source_app_id: string;
message_data: ReceivedMessageCreateDataV1;
custom_profile_id?: string;
}
export interface ReceivedMessageCreateDataV1 {
text: string;
entities: TweetEntitiesV1;
quick_reply_response?: {
type: 'options';
metadata?: string;
};
attachment?: {
type: 'media';
media: MediaEntityV1;
};
quick_reply?: MessageCreateQuickReplyV1;
ctas?: MessageCreateCtaV1[];
}
export interface ReceivedWelcomeDMCreateEventV1 {
id: string;
created_timestamp: string;
message_data: ReceivedMessageCreateDataV1;
name?: string;
}
export type DirectMessageCreateV1Result = {
event: DirectMessageCreateV1;
} & ReceivedDMAppsV1;
export interface ReceivedDMAppsV1 {
apps?: ReceivedDMAppListV1;
}
export type TReceivedDMEvent = DirectMessageCreateV1;
export interface ReceivedDMEventV1 extends ReceivedDMAppsV1 {
event: TReceivedDMEvent;
}
export interface ReceivedDMEventsV1 extends ReceivedDMAppsV1 {
next_cursor?: string;
events: TReceivedDMEvent[];
}
export interface ReceivedDMAppListV1 {
[appId: string]: {
id: string;
name: string;
url: string;
};
}
export interface WelcomeDirectMessageCreateV1Result extends ReceivedDMAppsV1 {
[EDirectMessageEventTypeV1.WelcomeCreate]: ReceivedWelcomeDMCreateEventV1;
name?: string;
}
export interface WelcomeDirectMessageListV1Result extends ReceivedDMAppsV1 {
next_cursor?: string;
welcome_messages: ReceivedWelcomeDMCreateEventV1[];
}
export interface CreateWelcomeDmRuleV1 {
welcome_message_id: string;
}
export interface WelcomeDmRuleV1 extends CreateWelcomeDmRuleV1 {
id: string;
created_timestamp: string;
}
export interface WelcomeDmRuleV1Result {
welcome_message_rule: WelcomeDmRuleV1;
}
export interface WelcomeDmRuleListV1Result {
next_cursor?: string;
welcome_message_rules?: WelcomeDmRuleV1[];
}