import type { InteractionContext } from '../types/interaction-context';
/**
 * A created {@link InteractionContext} plus the host-only `dispose` handle. The
 * driver keeps the handle (so it can tear the context down on resolve/evict) and
 * hands only `context` to the widget — widgets must not dispose their own context.
 *
 * @internal
 */
export interface InteractionContextHandle {
    readonly context: InteractionContext;
    /**
     * Run every registered `onDispose` callback once (in registration order), then
     * clear listeners. Idempotent. Called by the driver from `resolveInteraction`
     * and on driver teardown — never on element unmount.
     */
    dispose(): void;
}
/**
 * Create a live, per-interaction context (GENC-1390). Framework-agnostic: the
 * `subscribe`/`notify` pair is a plain observer set, not FAST reactivity. See
 * {@link InteractionContext} for the lifetime/semantics contract.
 *
 * @internal
 */
export declare function createInteractionContext(interactionId: string): InteractionContextHandle;
//# sourceMappingURL=interaction-context.d.ts.map