import type { VFile } from "../utils";
import type { Collect, Plugin } from './types';
import type { Meta } from "../meta";
import { AsyncSeriesHook, AsyncSeriesWaterfallHook } from 'tapable';
export declare function hooks(name: string): {
    Collects: AsyncSeriesWaterfallHook<[Collect[]], import("tapable").UnsetAdditionalOptions>;
    Plugins: AsyncSeriesWaterfallHook<[Plugin[]], import("tapable").UnsetAdditionalOptions>;
    Loaded: AsyncSeriesHook<[string, DeepFrozen<Meta>, NormalizedPath], import("tapable").UnsetAdditionalOptions>;
    Resolved: AsyncSeriesHook<[string, NormalizedPath], import("tapable").UnsetAdditionalOptions>;
    Dump: AsyncSeriesHook<VFile<string, {}>, import("tapable").UnsetAdditionalOptions>;
};
declare const getHooks: (program: object | undefined) => {
    Collects: AsyncSeriesWaterfallHook<[Collect[]], import("tapable").UnsetAdditionalOptions>;
    Plugins: AsyncSeriesWaterfallHook<[Plugin[]], import("tapable").UnsetAdditionalOptions>;
    Loaded: AsyncSeriesHook<[string, DeepFrozen<Meta>, NormalizedPath], import("tapable").UnsetAdditionalOptions>;
    Resolved: AsyncSeriesHook<[string, NormalizedPath], import("tapable").UnsetAdditionalOptions>;
    Dump: AsyncSeriesHook<VFile<string, {}>, import("tapable").UnsetAdditionalOptions>;
}, withHooks: <T extends ClassType<any>>(Target: T, { kind }: ClassDecoratorContext<abstract new (...args: any) => any>) => T;
export { getHooks, withHooks };
