/** * @license * Copyright Elegante All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://elegante.dev/license */ import { ActiveParams } from './Active'; import { EmailPasswordResetParams, EmailPasswordResetParamsCallback, EmailProvider } from './Provider'; import { Document } from './types/query'; export declare type ElegantePlugin = ClientPlugin | ServerPlugin; export declare type PluginHook = 'ActiveRecordBeforeDocumentSave' | 'ActiveRecordOnDocumentRead' | 'EmailProvider' | 'EmailPasswordResetTemplate'; export interface ClientPlugin { name: string; version: string; ActiveRecordBeforeDocumentSave?: (params: { doc: Document; params: ActiveParams; }) => Promise; ActiveRecordOnDocumentRead?: (params: { doc: Document; params: ActiveParams; }) => void; } export interface ServerPlugin { name: string; version: string; EmailProvider?: () => EmailProvider; EmailPasswordResetTemplate?: (params: EmailPasswordResetParams) => EmailPasswordResetParamsCallback; } export declare function getPluginHook(hook: PluginHook): ((params?: T) => Y) | undefined;