import type { Run } from './run';
import type { EntryInfo } from './types';
import { AsyncSeriesHook, HookMap } from 'tapable';
export declare function hooks(name: string): {
    /**
     * Async series hook map (md|html) which runs before start of target Run type.<br/><br/>
     *
     * @usage Best place to subscribe on target Run hooks.
     *
     * @prop run - constructed run context.
     */
    BeforeRun: HookMap<AsyncSeriesHook<Run, import("tapable").UnsetAdditionalOptions>>;
    /**
     * Async series hook map (md|html) which runs when project entry (each member of toc)
     * was completely resolved.<br/>
     *
     * @usage Best place to consume entry info in extensions.<br/>
     *
     * @prop entry - entry path resolved relative to project root.
     * @prop info - completely resolved entry info. (Can't be modified)
     */
    Entry: HookMap<AsyncSeriesHook<[Run, NormalizedPath, DeepFrozen<EntryInfo>], import("tapable").UnsetAdditionalOptions>>;
    /**
     * Async series hook map (md|html) which runs after build.<br/><br/>
     *
     * @usage Best place to release artifacts dependent on build results.<br/>
     *
     * @prop run - released run context.
     */
    AfterRun: HookMap<AsyncSeriesHook<Run, import("tapable").UnsetAdditionalOptions>>;
};
declare const getHooks: (program: object | undefined) => {
    /**
     * Async series hook map (md|html) which runs before start of target Run type.<br/><br/>
     *
     * @usage Best place to subscribe on target Run hooks.
     *
     * @prop run - constructed run context.
     */
    BeforeRun: HookMap<AsyncSeriesHook<Run, import("tapable").UnsetAdditionalOptions>>;
    /**
     * Async series hook map (md|html) which runs when project entry (each member of toc)
     * was completely resolved.<br/>
     *
     * @usage Best place to consume entry info in extensions.<br/>
     *
     * @prop entry - entry path resolved relative to project root.
     * @prop info - completely resolved entry info. (Can't be modified)
     */
    Entry: HookMap<AsyncSeriesHook<[Run, NormalizedPath, DeepFrozen<EntryInfo>], import("tapable").UnsetAdditionalOptions>>;
    /**
     * Async series hook map (md|html) which runs after build.<br/><br/>
     *
     * @usage Best place to release artifacts dependent on build results.<br/>
     *
     * @prop run - released run context.
     */
    AfterRun: HookMap<AsyncSeriesHook<Run, import("tapable").UnsetAdditionalOptions>>;
}, withHooks: <T extends ClassType<any>>(Target: T, { kind }: ClassDecoratorContext<abstract new (...args: any) => any>) => T;
export { getHooks, withHooks };
