import { EventMeta, Listener } from "./BasePluginEventManager"; import { Awaitable } from "../utils"; import { EventArguments, ValidEvent } from "./eventTypes"; import { AnyPluginData } from "../plugins/PluginData"; import { BasePluginType } from "../plugins/pluginTypes"; export type EventFilter = (event: TEventName, meta: EventMeta, EventArguments[TEventName]>) => Awaitable; export type FilteredListener> = T; /** * Runs the specified event listener if the event passes ALL of the specified * filters */ export declare function withFilters>(event: ValidEvent, listener: T, filters: EventFilter[]): FilteredListener; /** * Runs the specified event listener if the event passes ANY of the specified * filters */ export declare function withAnyFilter>(event: ValidEvent, listener: T, filters: EventFilter[]): FilteredListener; export declare function onlyGuild(): EventFilter; export declare function onlyDM(): EventFilter; export declare function cooldown(timeMs: number, permission?: string): EventFilter; export declare function requirePermission(permission: string): EventFilter; export declare function ignoreBots(): EventFilter; export declare function ignoreSelf(): EventFilter; export declare function locks(locksToAcquire: string | string[]): EventFilter;