/**
 * Canvas Event Normalizer
 *
 * Transforms Smart Canvas events into normalized events for the EventBus.
 */
import type { SurfaceContext } from '../../context/types';
import type { CanvasSurface } from '../../telemetry/types';
import type { NormalizedEvent } from '../types';
/**
 * Optional surface metadata attached to canvas open/close events so
 * dashboards can break engagement down by host environment without
 * joining against another table. Mirrors ``runtime.context.surface``
 * one-to-one — emitting the whole object via spread keeps the wire
 * format aligned with the runtime type and avoids the cherry-pick
 * anti-pattern when the SurfaceContext shape evolves.
 */
export type SurfaceEventMeta = SurfaceContext;
/**
 * Canvas opened event.
 *
 * @param surface - Telemetry source label (``'overlay'`` / ``'inline'`` /
 *   etc). Distinct from ``surfaceMeta``: this is the in-app render
 *   container, the meta is the host environment classification.
 */
export declare function canvasOpened(surface: CanvasSurface, surfaceMeta?: SurfaceEventMeta): NormalizedEvent;
/**
 * Canvas closed event.
 */
export declare function canvasClosed(surface: CanvasSurface, surfaceMeta?: SurfaceEventMeta): NormalizedEvent;
/**
 * Tile viewed event.
 */
export declare function tileViewed(tileId: string, surface: CanvasSurface): NormalizedEvent;
/**
 * Tile expanded event.
 */
export declare function tileExpanded(tileId: string, surface: CanvasSurface): NormalizedEvent;
/**
 * Tile collapsed event.
 */
export declare function tileCollapsed(tileId: string, surface: CanvasSurface): NormalizedEvent;
/**
 * Tile action event.
 */
export declare function tileAction(tileId: string, actionId: string, surface: CanvasSurface): NormalizedEvent;
/**
 * Overlay/tour started event.
 */
export declare function overlayStarted(recipeId: string, recipeName?: string): NormalizedEvent;
/**
 * Overlay/tour completed event.
 */
export declare function overlayCompleted(recipeId: string, recipeName?: string): NormalizedEvent;
/**
 * Overlay/tour dismissed event.
 */
export declare function overlayDismissed(recipeId: string, recipeName?: string, stepIndex?: number): NormalizedEvent;
/**
 * Overlay step viewed event.
 */
export declare function overlayStepViewed(recipeId: string, stepIndex: number, stepTitle?: string): NormalizedEvent;
/**
 * Create a custom canvas event.
 */
export declare function customCanvasEvent(name: string, props?: Record<string, unknown>): NormalizedEvent;
/**
 * Canvas event factory for easy event creation.
 */
export declare const CanvasEvents: {
    canvasOpened: typeof canvasOpened;
    canvasClosed: typeof canvasClosed;
    tileViewed: typeof tileViewed;
    tileExpanded: typeof tileExpanded;
    tileCollapsed: typeof tileCollapsed;
    tileAction: typeof tileAction;
    overlayStarted: typeof overlayStarted;
    overlayCompleted: typeof overlayCompleted;
    overlayDismissed: typeof overlayDismissed;
    overlayStepViewed: typeof overlayStepViewed;
    custom: typeof customCanvasEvent;
};
