import { type Optional } from '@ephox/katamari'; import { type EventArgs, type SugarElement } from '@ephox/sugar'; import type { AlloyBehaviourRecord } from '../behaviour/Behaviour'; import type { AlloyComponent } from '../component/ComponentApi'; import type { AlloyEventRecord } from '../events/AlloyEvents'; import * as Gui from './Gui'; export interface ForeignGuiSpec { readonly root: SugarElement; readonly dispatchers: Dispatcher[]; readonly insertion?: (root: SugarElement, system: Gui.GuiSystem) => void; } export interface DispatchedAlloyConfig { readonly events?: AlloyEventRecord; readonly behaviours: AlloyBehaviourRecord; readonly eventOrder?: Record; } export interface Dispatcher { readonly getTarget: (elem: SugarElement) => Optional>; readonly alloyConfig: DispatchedAlloyConfig; } export interface ForeignGuiDetail { readonly root: SugarElement; readonly dispatchers: Dispatcher[]; readonly insertion: (root: SugarElement, system: Gui.GuiSystem) => void; } export interface ForeignGuiConnection { readonly dispatchTo: (type: string, event: EventArgs) => void; readonly unproxy: (component: AlloyComponent) => void; readonly disengage: () => void; } declare const engage: (spec: ForeignGuiSpec) => ForeignGuiConnection; export { engage }; //# sourceMappingURL=ForeignGui.d.ts.map