import { Decorator } from '../support_decorators/decorator.js'; import type ComponentContext from '../../component_context.js'; /** * PHP parity: Livewire\Attributes\Async * * Marks an action method as safe to run outside the normal request queue. * The vendored client bundle (assets/livewire.js) already reads * `component.snapshot.memo.async` to decide whether a call should skip * queueing/blocking behind other in-flight requests — this decorator's * only job is to push the method name into that memo array on dehydrate, * same mechanism the client independently exposes per-call via the * `wire:click.async` modifier. * * No other server-side behavior changes: async is purely a client request- * ordering concern. Like real Livewire, this intentionally does not guard * against an async action mutating state that's reflected in the UI — * that's a documented caller responsibility (see docs/attribute-async.md), * not something the framework can safely prevent without knowing which * properties are UI-visible. */ export default class Async extends Decorator { name: string; constructor(name: string); dehydrate(context: ComponentContext): Promise; }