import type { CallbackQuery, CommonMessageBundle, Message, Update } from '@telegraf/types'; import type { Deunionize, UnionKeys } from './deunionize'; import { Guarded } from './core/helpers/util'; type DistinctKeys = Exclude, keyof T>; type Keyed> = Record & Deunionize, T>; export type Filter = (update: Update) => update is U; export { Guarded }; export type AllGuarded[]> = Fs extends [ infer A, ...infer B ] ? B extends [] ? Guarded : B extends Filter[] ? Guarded & AllGuarded : never : never; export declare const message: (...keys: Ks) => (update: Update) => update is Update.MessageUpdate>; export declare const editedMessage: (...keys: Ks) => (update: Update) => update is Update.EditedMessageUpdate>; export declare const channelPost: (...keys: Ks) => (update: Update) => update is Update.ChannelPostUpdate>; export declare const editedChannelPost: (...keys: Ks) => (update: Update) => update is Update.EditedChannelPostUpdate>; export declare const callbackQuery: (...keys: Ks) => (update: Update) => update is Update.CallbackQueryUpdate>; /** Any of the provided filters must match */ export declare const anyOf: (...filters: { [UIdx in keyof Us]: Filter; }) => (update: Update) => update is Us[number]; /** All of the provided filters must match */ export declare const allOf: []>(...filters: Fs) => (update: Update) => update is AllGuarded; //# sourceMappingURL=filters.d.ts.map