import type { NonUndefined } from 'utility-types' import type { KeyValue } from '../../common' import { Registry } from '../registry' import * as filters from './main' export type FilterDefinition = (args: T) => string type CommonDefinition = FilterDefinition type Presets = typeof presets type OptionsMap = { readonly [K in keyof Presets]-?: NonUndefined[0]> } type NativeNames = keyof Presets export interface FilterNativeItem { name: T args?: OptionsMap[T] } export interface FilterManualItem { name: Exclude args?: KeyValue } const presets = filters export const filterRegistry = Registry.create({ type: 'filter', }) filterRegistry.register(presets, true)