/**
 * Contains the {@link load entry point} for  `@appium/typedoc-plugin-appium`
 * @module
 */
import { Application, Context, DeclarationReflection } from 'typedoc';
import { AppiumPluginLogger, AppiumPluginParentLogger } from './logger';
import { ExtensionReflection, ProjectCommands } from './model';
/**
 * Loads the Appium TypeDoc plugin.
 *
 * @param app - TypeDoc Application
 * @returns Unused by TypeDoc, but can be consumed programmatically.
 */
export declare function load(app: Application): Promise<[PromiseSettledResult<ConvertResult>, PromiseSettledResult<PostProcessResult>]>;
/**
 * Registers theme and options, then monkeys with the options
 */
export declare const setup: (app: Application) => Application;
/**
 * Finds commands and creates new reflections for them, adding them to the project.
 *
 * Resolves after {@linkcode Converter.EVENT_RESOLVE_END} emits and when it's finished.
 * @param app Typedoc Application
 * @returns A {@linkcode ConvertResult} receipt from the conversion
 */
export declare function convert(app: Application): Promise<ConvertResult>;
/**
 * Resolved value of {@linkcode convert}
 */
export interface ConvertResult {
    /**
     * Context at time of {@linkcode Context.EVENT_RESOLVE_END}
     */
    ctx: Context;
    /**
     * Raw data structure containing everything about commands in the project
     */
    projectCommands?: ProjectCommands;
    /**
     * List of custom reflections created by the plugin
     */
    extensionReflections?: ExtensionReflection[];
}
/**
 * Optionally omits the default TypeDoc reflections from the project based on the `outputModules` option.
 *
 * Resolves after {@linkcode Converter.EVENT_RESOLVE_END} emits and when it's finished.
 * @param app Typedoc application
 * @returns Typedoc `Context` at the time of the {@linkcode Converter.EVENT_RESOLVE_END} event
 */
export declare function postProcess(app: Application): Promise<PostProcessResult>;
/**
 * Result of {@linkcode postProcess}
 */
export interface PostProcessResult {
    /**
     * A list of {@linkcode DeclarationReflection DeclarationReflections} which were removed from the
     * project, if any.
     */
    removed?: Set<DeclarationReflection>;
    /**
     * Context at time of {@linkcode Context.EVENT_RESOLVE_END}
     */
    ctx: Context;
}
export * from './options';
export * from './theme';
export type { AppiumPluginLogger, AppiumPluginParentLogger };
//# sourceMappingURL=index.d.ts.map