import { LitElement } from 'lit'; export interface OkCoachStep { /** Selector CSS del elemento a destacar (spotlight). Si no resuelve, el bubble se centra. */ target: string; /** Título del paso (negrita). */ title?: string; /** Cuerpo descriptivo del paso. */ text?: string; /** * Lado preferido del bubble respecto al target: `top` | `bottom` | `left` | `right`. * Default `bottom`. Igualmente se voltea si no cabe en el viewport (edge-aware). */ placement?: OkCoachPlacement; } export type OkCoachPlacement = 'top' | 'bottom' | 'left' | 'right'; export interface OkCoachmarkLabels { /** Botón anterior. */ prev: string; /** Botón siguiente. */ next: string; /** Botón del último paso (finaliza el tour). */ finish: string; /** Botón saltar (cierra el tour). */ skip: string; /** Plantilla de etiqueta de paso; `{n}` = actual (1-based), `{total}` = total. */ step: string; } export declare class OkCoachmark extends LitElement { static styles: import("lit").CSSResult; /** Pasos del tour. */ steps: OkCoachStep[]; /** Índice del paso activo (0-based). Reflejado para control externo. */ current: number; /** Si el tour está abierto/visible. */ open: boolean; /** Textos traducibles (merge sobre los defaults en inglés). */ labels: Partial; private rect; private bubble; private portalRoot; private get t(); private get step(); private get isLast(); private readonly onReflow; private readonly onKeydown; disconnectedCallback(): void; protected updated(changed: Map): void; private bind; private unbind; private ensurePortal; private measure; private computeBubble; private emit; private goTo; private next; private prev; private finish; private skip; render(): unknown; private scrimTemplate; private spotTemplate; private bubbleTemplate; private overlayTemplate; } declare global { interface HTMLElementTagNameMap { 'ok-coachmark': OkCoachmark; } }