import { ApiItem , ApiModel } from '@microsoft/api-extractor-model' ; import { TypeUuid } from '@rushstack/node-core-library' ; import { PluginFeature } from './PluginFeature' ; import { MarkdownDocumenterAccessor } from './MarkdownDocumenterAccessor' ; /**
 * Context object for  MarkdownDocumenterFeature .
 * Exposes various services that can be used by a plugin.
 *
 *  public export class MarkdownDocumenterFeatureContext { /**
     * Provides access to the `ApiModel` for the documentation being generated.
     */ public readonly apiModel : ApiModel ; /**
     * The full path to the output folder.
     */ public readonly outputFolder : string ; /**
     * Exposes functionality of the documenter.
     */ public readonly documenter : MarkdownDocumenterAccessor ; internal public constructor ( options ) { this . apiModel = options . apiModel ; this . outputFolder = options . outputFolder ; this . documenter = options . documenter ; } } public export interface IMarkdownDocumenterFeatureOnBeforeWritePageArgs { /**
     * The API item corresponding to this page.
     */ readonly apiItem : ApiItem ; /**
     * The page content.  The  MarkdownDocumenterFeature . onBeforeWritePage handler can reassign this
     * string to customize the page appearance.
      pageContent : string ; /**
     * The filename where the output will be written.
     */ readonly outputFilename : string ; } public export interface IMarkdownDocumenterFeatureOnFinishedArgs { } const uuidMarkdownDocumenterFeature = '34196154-9eb3-4de0-a8c8-7e9539dfe216' ; public export class MarkdownDocumenterFeature extends PluginFeature { /** {@inheritdoc PluginFeature.context} */ public context ! : MarkdownDocumenterFeatureContext ; virtual public onBeforeWritePage ( eventArgs ) { } virtual public onFinished ( eventArgs ) { } public static [ Symbol . hasInstance ] ( instance ) { return TypeUuid . isInstanceOf ( instance , uuidMarkdownDocumenterFeature ) ; } } TypeUuid . registerClass ( MarkdownDocumenterFeature , uuidMarkdownDocumenterFeature ) ;