import type { MicroInteractionConfig, Mint, MintFactory, MintSettleSignal } from './types.js'; /** * Generic micro-interaction factory. * * Two behaviour models, decided by the trigger: * * - **hover / focus — a held state.** The class goes on when the pointer * enters (or the element gains visible focus) and comes off when it leaves. * No clock is involved: a hover glow stays lit for as long as the pointer * stays, exactly what "hover grow"/"hover glow" reads as. Focus applies * only for `:focus-visible` focus — the repo-wide keyboard-only convention. * - **click / load — a one-shot run.** The class goes on and settles off via * the effect's own end event (see MintSettleSignal), with a timeout as the * safety net. * * `settles` names the CSS mechanism the class drives; held triggers ignore it * (their end is the leave event). Omitting it on a run trigger leaves the * fallback timeout as the only cleanup — always safe, just less precise. * * Consumer-configured `duration`/`easing`/`intensity` are written as inline * custom properties for the element's whole mint lifetime — the stylesheet * reads them with the theme token as fallback, so the CSS animation actually * runs at the configured speed AND the exit transition matches. Registration * defaults deliberately do NOT become inline vars: with no consumer config * the theme tokens stay in charge (they are the tunable default). */ export declare function createMicroInteraction(className: string, defaultConfig?: MicroInteractionConfig, settles?: MintSettleSignal): Mint; /** * The `scale` micro-interaction factory, exported standalone so components * whose mint *default* is `'scale'` (Button) can import it directly and pass * it as a fallback: `mintRegistry.apply(el, mint, { scale: scaleMint })`. * That is the `resolveIcon` tree-shaking pattern — the default effect ships * with the component; the rest of the built-in set stays demand-loaded. * `registerDefaultMints()` registers this same factory, so the registry path * and the fallback path are behaviour-identical. */ export declare const scaleMint: MintFactory;