Skip to content

Types (API Reference) ​

All exported type aliases, interfaces, and constants from grammy-testing.

Chat member types ​

ChatMemberStatus ​

ts
type ChatMemberStatus = 'creator' | 'administrator' | 'member' | 'restricted' | 'left' | 'kicked';

Membership<TContext> ​

ts
interface Membership<TContext extends Context = Context> {
  status: ChatMemberStatus;
  user: User<TContext>;
  // ... Telegram ChatMember fields
}

MemberStatusTransition ​

ts
interface MemberStatusTransition {
  old_status: ChatMemberStatus;
  new_status: ChatMemberStatus;
}

Permission types ​

PermissionFlags ​

ts
interface PermissionFlags {
  can_send_messages?: boolean;
  can_send_audios?: boolean;
  can_send_documents?: boolean;
  can_send_photos?: boolean;
  can_send_videos?: boolean;
  can_send_video_notes?: boolean;
  can_send_voice_notes?: boolean;
  can_send_polls?: boolean;
  can_send_other_messages?: boolean;
  can_add_web_page_previews?: boolean;
  can_change_info?: boolean;
  can_invite_users?: boolean;
  can_pin_messages?: boolean;
  can_manage_topics?: boolean;
}

PromotePermissions ​

ts
interface PromotePermissions {
  can_manage_chat?: boolean;
  can_delete_messages?: boolean;
  can_manage_video_chats?: boolean;
  can_restrict_members?: boolean;
  can_promote_members?: boolean;
  can_change_info?: boolean;
  can_invite_users?: boolean;
  can_post_stories?: boolean;
  can_edit_stories?: boolean;
  can_delete_stories?: boolean;
  can_post_messages?: boolean;
  can_edit_messages?: boolean;
  can_pin_messages?: boolean;
  can_manage_topics?: boolean;
  is_anonymous?: boolean;
}

RestrictPermissions ​

Extends PermissionFlags with until_date:

ts
interface RestrictPermissions extends PermissionFlags {
  until_date?: number;
}

Dispatch option types ​

DispatchMemberUpdateOptions ​

ts
interface DispatchMemberUpdateOptions {
  // options for dispatchMemberUpdate
}

DispatchReactionCountOptions ​

ts
interface DispatchReactionCountOptions {
  // options for dispatchReactionCount
}

SendSystemMessageOptions ​

ts
interface SendSystemMessageOptions {
  // options for sendSystemMessage
}

Response types ​

Responses ​

ts
type Responses = {
  [M in Methods]?: ResponseResolver<M>;
};

ResponseResolver<TMethod> ​

ts
type ResponseResolver<TMethod extends Methods> =
  | Partial<Result<TMethod>>
  | ((payload: Payload<TMethod>, method: TMethod) => Partial<Result<TMethod>> | Promise<Partial<Result<TMethod>>>);

Error types ​

GrammyErrorSpec ​

ts
interface GrammyErrorSpec {
  code: number;
  description: string;
}

Sugar type for failNext/failAll. The library converts this to a real GrammyError internally.


Chat union type ​

AnyChat<TContext> ​

ts
type AnyChat<TContext extends Context = Context> = Group<TContext> | Supergroup<TContext> | Channel<TContext> | PrivateChat<TContext>;

Constants ​

GROUP_ANONYMOUS_BOT ​

ts
const GROUP_ANONYMOUS_BOT: TelegramUser = {
  id: 1_087_968_824,
  is_bot: true,
  first_name: 'Group',
  username: 'GroupAnonymousBot',
};

TELEGRAM_RELAY ​

Internal relay user used for channel-forwarded messages in groups.


Re-exported from grammY ​

ParseMode ​

ts
type ParseMode = 'HTML' | 'Markdown' | 'MarkdownV2';

GrammyError ​

Re-exported directly from grammy for convenience:

ts
import { GrammyError } from 'grammy-testing';

Context augmentation types (low-level) ​

SessionContext<TSession> ​

ts
interface SessionContext<TSession> extends Context {
  session: TSession;
}

ChatSessionContext<TChatSession> ​

ts
interface ChatSessionContext<TChatSession> extends Context {
  chatSession: TChatSession;
}

StateContext<TState> ​

ts
interface StateContext<TState> extends Context {
  state: TState;
}

Released under the MIT License.