import { OutgoingContext } from '../messages'; import type { ClientActionBox } from './ClientActionBox'; import type { InstanceEventEmitter } from './utils/InstanceEvents'; import { destroy, events, getActionBox, getInstanceId, setContextData, } from './utils/createClientActionProxy'; export interface ClientActionInstance { [destroy]: () => Promise; [getInstanceId]: () => string; [getActionBox]: () => ClientActionBox; [events]: () => InstanceEventEmitter; [setContextData]: (data: OutgoingContext, hard?: boolean) => void; onInstanceCreate?(ab: ClientActionBox, context: Record): Promise | void; }