import { PreHook, FuncReturns } from 'magic-hook'; export declare type Plugin = { (target: Object, options: Object, next?: Function): Promise | void; attributes: any; }; export declare type RegisterPlugin = { register: Plugin; }; export declare type WrappedRegisterPlugin = { register: { register: Plugin; }; }; export declare type AnyPlugin = (Plugin | RegisterPlugin | WrappedRegisterPlugin) & { options?: any; }; export declare type NormalizedPlugin = { register: Plugin; name: string; version: string; options: any; }; export declare type ErrorCallback = (err?: Error) => void; export declare type RemiHook = { (target: T, plugin: NormalizedPlugin, cb: ErrorCallback): void; }; export default function remi(target: T): { hook(...hooks: PreHook, void>[]): void; register(plugins: AnyPlugin[]): Promise; };