## API Report File for "@backstage/plugin-scaffolder"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
/// <reference types="react" />

import { ApiHolder } from '@backstage/core-plugin-api';
import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { ComponentProps } from 'react';
import { ComponentType } from 'react';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { EntityName } from '@backstage/catalog-model';
import { Extension } from '@backstage/core-plugin-api';
import { ExternalRouteRef } from '@backstage/core-plugin-api';
import { FieldProps } from '@rjsf/core';
import { FieldValidation } from '@rjsf/core';
import { IconButton } from '@material-ui/core';
import { IdentityApi } from '@backstage/core-plugin-api';
import { JsonObject } from '@backstage/config';
import { JSONSchema } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/config';
import { Observable } from '@backstage/core-plugin-api';
import { default as React_2 } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { TemplateEntityV1beta2 } from '@backstage/catalog-model';

// Warning: (ae-missing-release-tag) "createScaffolderFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function createScaffolderFieldExtension<T = any>(
  options: FieldExtensionOptions<T>,
): Extension<() => null>;

// Warning: (ae-missing-release-tag) "CustomFieldValidator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CustomFieldValidator<T> =
  | ((data: T, field: FieldValidation) => void)
  | ((
      data: T,
      field: FieldValidation,
      context: {
        apiHolder: ApiHolder;
      },
    ) => void);

// Warning: (ae-missing-release-tag) "EntityNamePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityNamePicker: ({
  schema: { title, description },
  ...props
}: FieldProps<string>) => JSX.Element;

// Warning: (ae-missing-release-tag) "EntityNamePickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityNamePickerFieldExtension: () => null;

// Warning: (ae-missing-release-tag) "EntityPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityPicker: ({
  onChange,
  schema: { title, description },
  required,
  uiSchema,
  rawErrors,
  formData,
  idSchema,
}: FieldProps<string>) => JSX.Element;

// Warning: (ae-missing-release-tag) "EntityPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityPickerFieldExtension: () => null;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "FavouriteTemplate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const FavouriteTemplate: (props: Props) => JSX.Element;

// Warning: (ae-missing-release-tag) "FieldExtensionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FieldExtensionOptions<T = any> = {
  name: string;
  component: (props: FieldProps<T>) => JSX.Element | null;
  validation?: CustomFieldValidator<T>;
};

// Warning: (ae-missing-release-tag) "OwnerPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const OwnerPicker: ({
  schema: { title, description },
  uiSchema,
  ...props
}: FieldProps<string>) => JSX.Element;

// Warning: (ae-missing-release-tag) "OwnerPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const OwnerPickerFieldExtension: () => null;

// Warning: (ae-missing-release-tag) "RepoUrlPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const RepoUrlPicker: ({
  onChange,
  uiSchema,
  rawErrors,
  formData,
}: FieldProps<string>) => JSX.Element;

// Warning: (ae-missing-release-tag) "RepoUrlPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const RepoUrlPickerFieldExtension: () => null;

// Warning: (ae-missing-release-tag) "ScaffolderApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScaffolderApi {
  // (undocumented)
  getIntegrationsList(options: { allowedHosts: string[] }): Promise<
    {
      type: string;
      title: string;
      host: string;
    }[]
  >;
  // Warning: (ae-forgotten-export) The symbol "ScaffolderTask" needs to be exported by the entry point index.d.ts
  //
  // (undocumented)
  getTask(taskId: string): Promise<ScaffolderTask>;
  // Warning: (ae-forgotten-export) The symbol "TemplateParameterSchema" needs to be exported by the entry point index.d.ts
  //
  // (undocumented)
  getTemplateParameterSchema(
    templateName: EntityName,
  ): Promise<TemplateParameterSchema>;
  // Warning: (ae-forgotten-export) The symbol "ListActionsResponse" needs to be exported by the entry point index.d.ts
  //
  // (undocumented)
  listActions(): Promise<ListActionsResponse>;
  // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
  // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
  scaffold(templateName: string, values: Record<string, any>): Promise<string>;
  // Warning: (ae-forgotten-export) The symbol "LogEvent" needs to be exported by the entry point index.d.ts
  //
  // (undocumented)
  streamLogs({
    taskId,
    after,
  }: {
    taskId: string;
    after?: number;
  }): Observable<LogEvent>;
}

// Warning: (ae-missing-release-tag) "scaffolderApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const scaffolderApiRef: ApiRef<ScaffolderApi>;

// Warning: (ae-missing-release-tag) "ScaffolderClient" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScaffolderClient implements ScaffolderApi {
  constructor(options: {
    discoveryApi: DiscoveryApi;
    identityApi: IdentityApi;
    scmIntegrationsApi: ScmIntegrationRegistry;
  });
  // (undocumented)
  getIntegrationsList(options: { allowedHosts: string[] }): Promise<
    {
      type: string;
      title: string;
      host: string;
    }[]
  >;
  // (undocumented)
  getTask(taskId: string): Promise<any>;
  // (undocumented)
  getTemplateParameterSchema(
    templateName: EntityName,
  ): Promise<TemplateParameterSchema>;
  // (undocumented)
  listActions(): Promise<ListActionsResponse>;
  // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
  // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
  scaffold(templateName: string, values: Record<string, any>): Promise<string>;
  // (undocumented)
  streamLogs({
    taskId,
    after,
  }: {
    taskId: string;
    after?: number;
  }): Observable<LogEvent>;
}

// Warning: (ae-missing-release-tag) "ScaffolderFieldExtensions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ScaffolderFieldExtensions: React_2.ComponentType;

// Warning: (ae-missing-release-tag) "ScaffolderPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ScaffolderPage: ({
  TemplateCardComponent,
}: {
  TemplateCardComponent?:
    | ComponentType<{
        template: TemplateEntityV1beta2;
      }>
    | undefined;
}) => JSX.Element;

// Warning: (ae-missing-release-tag) "scaffolderPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
const scaffolderPlugin: BackstagePlugin<
  {
    root: RouteRef<undefined>;
  },
  {
    registerComponent: ExternalRouteRef<undefined, true>;
  }
>;
export { scaffolderPlugin as plugin };
export { scaffolderPlugin };

// Warning: (ae-missing-release-tag) "TextValuePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const TextValuePicker: ({
  onChange,
  required,
  schema: { title, description },
  rawErrors,
  formData,
  uiSchema: { 'ui:autofocus': autoFocus },
  idSchema,
  placeholder,
}: FieldProps<string>) => JSX.Element;
```
