import { type BaseComponent } from '../../base_component.js'; /** * Attaches a `.links()` method directly onto a single paginator * instance — not onto Lucid's `SimplePaginator`/`ModelPaginator` * prototype (neither actually extends `Macroable`, confirmed by * reading `@adonisjs/lucid`'s source; both only `extends Array`). * * `Macroable.macro()` itself is just `this.prototype[name] = value` * (confirmed reading `@poppinss/macroable`'s source) — the same * per-instance-closure effect works without needing the target class to * "be" Macroable at all, and avoids patching a third-party library's * shared prototype globally. * * Non-enumerable on purpose: `paginate()`'s result is typically handed * straight to a template as local data (`this.view.render(path, { posts })`), * never assigned to a synced component property, so it never goes * through `SnapshotManager.dehydrateProperties()`'s `for...in` either * way — but non-enumerable keeps `.links` out of any `for...in`/ * `Object.keys()`/`JSON.stringify()`/`assert.deepEqual()` on the * paginator itself regardless, matching how a plain data shape should * behave. */ export declare function attachPaginationLinks(paginator: unknown, component: BaseComponent, pageName: string): void;