import { Application, PageEvent, Reflection } from 'typedoc';
import { ApplicationAccessor } from './base-plugin';
export declare class CurrentPageMemo {
    readonly application: Application;
    private static readonly _applications;
    private _currentPage?;
    private _initialized;
    get initialized(): boolean;
    /**
     * Get the instance for the given plugin.
     *
     * @param applicationAccessor - The application accessor to get memo for.
     * @returns the plugin page memo
     */
    static for(applicationAccessor: ApplicationAccessor): CurrentPageMemo;
    private constructor();
    /**
     * Start watching for pages event.
     */
    initialize(): void;
    /**
     * Set the current page as being the {@link pageOrModel} while running the {@link callback}. The current page is restored afterwards no matter what.
     *
     * @param pageOrModel - The page to set.
     * @param callback - The function to execute.
     * @returns the {@link callback} return value.
     */
    fakeWrapPage<T, Model extends Reflection>(pageOrModel: PageEvent<Model> | Model, callback: () => T): T;
    get currentPage(): PageEvent<Reflection>;
    get currentReflection(): Reflection;
    get hasCurrent(): boolean;
}
//# sourceMappingURL=current-page-memo.d.ts.map