import type { FieldGroupingOverlayRuntimeOptions } from '../../core/services/field-grouping-overlay'; type FieldGroupingOverlayMainDeps = Omit< FieldGroupingOverlayRuntimeOptions, 'sendToVisibleOverlay' > & { sendToActiveOverlayWindow: ( channel: string, payload?: unknown, runtimeOptions?: { restoreOnModalClose?: TModal }, ) => boolean; }; type BuiltFieldGroupingOverlayMainDeps = FieldGroupingOverlayRuntimeOptions & { sendToVisibleOverlay: NonNullable< FieldGroupingOverlayRuntimeOptions['sendToVisibleOverlay'] >; }; export function createBuildFieldGroupingOverlayMainDepsHandler( deps: FieldGroupingOverlayMainDeps, ) { return (): BuiltFieldGroupingOverlayMainDeps => ({ getMainWindow: () => deps.getMainWindow(), getVisibleOverlayVisible: () => deps.getVisibleOverlayVisible(), setVisibleOverlayVisible: (visible: boolean) => deps.setVisibleOverlayVisible(visible), getResolver: () => deps.getResolver(), setResolver: (resolver) => deps.setResolver(resolver), getRestoreVisibleOverlayOnModalClose: () => deps.getRestoreVisibleOverlayOnModalClose(), sendToVisibleOverlay: ( channel: string, payload?: unknown, runtimeOptions?: { restoreOnModalClose?: TModal }, ) => deps.sendToActiveOverlayWindow(channel, payload, runtimeOptions), }); }