import type { MuiBaseEvent } from '@mui/x-internals/types'; import type { GridEventLookup, GridEvents } from "./gridEventLookup.mjs"; type PublisherArgsNoEvent = [E, T['params']]; type PublisherArgsRequiredEvent = [E, T['params'], T['event']]; type PublisherArgsOptionalEvent = PublisherArgsRequiredEvent | PublisherArgsNoEvent; type PublisherArgsEvent = {} extends T['event'] ? PublisherArgsOptionalEvent : PublisherArgsRequiredEvent; type PublisherArgsParams = [E, T['params']]; type PublisherArgsNoParams = [E]; type GridEventPublisherArg = T extends { params: any; event: MuiBaseEvent; } ? PublisherArgsEvent : T extends { params: any; } ? PublisherArgsParams : PublisherArgsNoParams; export type GridEventPublisher = (...params: GridEventPublisherArg) => void; export {};