import type { TapableFactory, AsyncFn, AsyncParallelTapableHookInstance, AsyncTapableHookInstance, AsyncWrapper, SyncTapableHookInstance, SyncWrapper } from './types'; export { SyncTapableHookInstance, AsyncTapableHookInstance, AsyncParallelTapableHookInstance }; export declare class SyncTapable implements SyncTapableHookInstance { private name; private plugins; private wrappers; constructor(name: string); tap(name: string, fn: (context: Context, payload: Payload, result: Result) => Result): () => void; call(payload: Payload): Result; wrap(fn: SyncWrapper): void; } export declare class AsyncTapable implements AsyncTapableHookInstance { private name; private plugins; private wrappers; constructor(name: string); tap(name: string, fn: (context: Context, payload: Payload, result: Result) => Result): () => void; tapPromise(name: string, fn: (context: Context, payload: Payload, result: Result) => Promise): () => void; tapAsync(name: string, fn: (context: Context, payload: Payload, result: Result, next: AsyncFn) => void): () => void; callPromise(payload: Payload): Promise; wrap(fn: AsyncWrapper): void; } export declare class AsyncParallelTapable implements AsyncParallelTapableHookInstance { private name; private plugins; private wrappers; constructor(name: string); tap(name: string, fn: (context: Context, payload: Payload, result: void) => void): () => void; tapPromise(name: string, fn: (context: Context, payload: Payload, result: void) => Promise): () => void; tapAsync(name: string, fn: (context: Context, payload: Payload, result: void, next: AsyncFn) => void): () => void; callPromise(payload: Payload): Promise; wrap(fn: AsyncWrapper): void; } export declare class TapableHooks implements TapableFactory { createSync(name: string): SyncTapableHookInstance; createAsync(name: string): AsyncTapableHookInstance; createAsyncParallel(name: string): AsyncParallelTapableHookInstance; } //# sourceMappingURL=tapable.d.ts.map