///
declare module '@ioc:Adonis/Core/Event' {
import type { LucidRow, ModelQueryBuilderContract, LucidModel, EventsList as Hooks } from '@ioc:Adonis/Lucid/Orm';
import type { SimplePaginatorContract } from '@ioc:Adonis/Lucid/Database';
type ObserverEventName = `observer:${Event}`;
type Data = Type extends ObserverEventName<'beforeFetch'> | ObserverEventName<'beforeFind'> ? ModelQueryBuilderContract : Type extends ObserverEventName<'beforePaginate'> ? [ModelQueryBuilderContract, ModelQueryBuilderContract] : Type extends ObserverEventName<'afterPaginate'> ? SimplePaginatorContract : Type extends ObserverEventName<'afterFetch'> ? Array : LucidRow;
type Payload = {
type: Type;
data: Data;
observer: string;
isTransaction: Type extends ObserverEventName<'afterPaginate'> ? false : boolean;
};
type BeforeHooksList = ObserverEventName<`before${Capitalize}`>;
type AfterHooksList = ObserverEventName<`after${Capitalize}`>;
type HooksList = {
[Key in BeforeHooksList]: Payload;
} & {
[Key in AfterHooksList]: Payload;
};
interface EventsList extends HooksList {
}
}