telebot-ts API Documentation - v1.0.0
    Preparing search index...

    Interface Persistence

    Contract for bot state persistence backends.

    Enables storing and retrieving user data, chat data, bot data, conversation states, and scheduled background jobs across bot restarts.

    class MyCustomPersistence implements Persistence {
    async getUserData(userId: number) { return {}; }
    async setUserData(userId: number, data: Record<string, unknown>) {}
    // ... other methods
    }
    interface Persistence {
        deleteChatData?(chatId: string | number): Promise<void>;
        deleteConversation?(key: string): Promise<void>;
        deleteUserData?(userId: number): Promise<void>;
        flush?(): Promise<void>;
        getBotData(): Promise<Record<string, unknown>>;
        getChatData(chatId: string | number): Promise<Record<string, unknown>>;
        getConversations(): Promise<Map<string, string | number>>;
        getJobs(): Promise<PersistedJob[]>;
        getUserData(userId: number): Promise<Record<string, unknown>>;
        setBotData(data: Record<string, unknown>): Promise<void>;
        setChatData(
            chatId: string | number,
            data: Record<string, unknown>,
        ): Promise<void>;
        setJobs(jobs: PersistedJob[]): Promise<void>;
        setUserData(userId: number, data: Record<string, unknown>): Promise<void>;
        updateConversation(key: string, state: string | number): Promise<void>;
    }

    Implemented by

    Index
    • Optional method to delete chat data for a specific chat ID.

      Parameters

      • chatId: string | number

        Telegram chat ID.

      Returns Promise<void>

    • Optional method to delete conversation state.

      Parameters

      • key: string

        Conversation key composite.

      Returns Promise<void>

    • Optional method to delete user data for a specific user ID.

      Parameters

      • userId: number

        Telegram user ID.

      Returns Promise<void>

    • Optional lifecycle hook to flush in-memory buffers to underlying disk or database.

      Returns Promise<void>

      Resolves when flushing completes.

    • Retrieves global bot data.

      Returns Promise<Record<string, unknown>>

      Bot data object.

    • Retrieves stored chat data for a specific chat ID.

      Parameters

      • chatId: string | number

        Telegram chat ID (number or string).

      Returns Promise<Record<string, unknown>>

      Chat data object (returns empty object if none found).

    • Retrieves all active conversation states.

      Returns Promise<Map<string, string | number>>

      A map of conversation keys to state values.

    • Retrieves stored user data for a specific user ID.

      Parameters

      • userId: number

        Telegram user ID.

      Returns Promise<Record<string, unknown>>

      User data object (returns empty object if none found).

    • Stores global bot data.

      Parameters

      • data: Record<string, unknown>

        Key-value map of global bot state.

      Returns Promise<void>

      Resolves when data is saved.

    • Stores chat data for a specific chat ID.

      Parameters

      • chatId: string | number

        Telegram chat ID (number or string).

      • data: Record<string, unknown>

        Key-value map of chat state.

      Returns Promise<void>

      Resolves when data is saved.

    • Overwrites the list of persisted scheduled jobs.

      Parameters

      Returns Promise<void>

      Resolves when jobs are saved.

    • Stores user data for a specific user ID.

      Parameters

      • userId: number

        Telegram user ID.

      • data: Record<string, unknown>

        Key-value map of user state.

      Returns Promise<void>

      Resolves when data is saved.

    • Updates or saves the state for a specific conversation key.

      Parameters

      • key: string

        Conversation key composite (e.g. chat_id + user_id).

      • state: string | number

        Conversation state identifier or step number.

      Returns Promise<void>

      Resolves when state is updated.