import type { ChannelChat, Chat, Filter, GroupChat, PrivateChat, SupergroupChat } from '@puregram/api'; type ChatTypeKey = 'private' | 'group' | 'supergroup' | 'channel'; type SenderChatTypeKey = Exclude; type ChatSubtype = T extends 'private' ? PrivateChat : T extends 'group' ? GroupChat : T extends 'supergroup' ? SupergroupChat : T extends 'channel' ? ChannelChat : never; /** * match against `chat.type`. callable form `chat('private')` plus shorthand * properties `chat.private` / `chat.group` / `chat.supergroup` / `chat.channel` */ export declare const chat: ((type: T) => Filter; }>) & { private: Filter; group: Filter; supergroup: Filter; channel: Filter; }; /** * match against `sender_chat.type` — bot-api restricts sender chats to group, * supergroup, and channel. callable `senderChat('channel')` plus shorthand * properties `senderChat.group` / `.supergroup` / `.channel` */ export declare const senderChat: ((type: T) => Filter; }>) & { group: Filter; supergroup: Filter; channel: Filter; }; /** * match when `chat.id` is one of the supplied ids. varargs or readonly array. * `kinds` metadata covers every chat-bearing kind for the dispatcher fast-path */ export declare function chatId(ids: readonly number[]): Filter; export declare function chatId(...ids: number[]): Filter; /** match when the chat is a forum supergroup (`chat.is_forum === true`) */ export declare const forum: Filter & { isForum: true; }; }>; /** match when the message belongs to a forum topic (`is_topic_message === true`) */ export declare const topicMessage: Filter; export {}; //# sourceMappingURL=chat.d.ts.map