declare module '@tensei/common/filters' { import { Request } from 'express' import { FieldContract } from '@tensei/core' import { FilterQuery, Dictionary } from '@mikro-orm/core' interface FilterConfig { name: string shortName: string args?: boolean default: boolean dashboardView?: boolean cond: FilterCondition fields: FieldContract[] } type FilterCondition = ( args: Dictionary, request: Request, type: 'read' | 'update' | 'delete' ) => FilterQuery | Promise> export interface FilterContract { config: FilterConfig query(condition: FilterCondition): this dashboardView(): this noArgs(): this default(): this } export function filter( name: string, slug?: string ): FilterContract }