declare module '@ember/component' {
/**
@module @ember/component
@public
*/
export { setComponentTemplate, getComponentTemplate } from '@glimmer/manager';
export { Component as default, Input, Textarea } from '@ember/-internals/glimmer';
export {
componentCapabilities as capabilities,
setComponentManager,
} from '@ember/-internals/glimmer';
/**
* Assigns a TemplateFactory to a component class.
*
* @method setComponentTemplate
* @static
* @for @ember/component
* @public
*
* ```js
* import Component from '@glimmer/component';
* import { hbs } from 'ember-cli-htmlbars';
* import { setComponentTemplate } from '@ember/component';
*
* export default class Demo extends Component {
* // ...
* }
*
* setComponentTemplate(hbs`
*
my template
* `, Demo);
* ```
*
* @param {TemplateFactory} templateFactory
* @param {object} componentDefinition
*/
/**
* Returns the TemplateFactory associated with a component
*
* @method getComponentTemplate
* @static
* @for @ember/component
* @public
*
* ```js
* import Component from '@glimmer/component';
* import { hbs } from 'ember-cli-htmlbars';
* import { getComponentTemplate } from '@ember/component';
*
* export default class Demo extends Component {
* // ...
* }
*
* let theTemplateFactory = getTemplateFactory(Demo)
* ```
*
* @param {object} componentDefinition
* @returns {TemplateFactory}
*/
/**
* Tell the VM how manage a type of object / class when encountered
* via component-invocation.
*
* A Component Manager, must implement this interface:
* - static create()
* - createComponent()
* - updateComponent()
* - destroyComponent()
* - getContext()
*
* @method setComponentManager
* @static
* @for @ember/component
* @public
*
*
* After a component manager is registered via `setComponentManager`,
*
* ```js
* import { StateNode } from 'xstate';
* import ComponentManager from './-private/statechart-manager';
*
* setComponentManager((owner) => ComponentManager.create(owner), StateNode.prototype);
* ```
*
* Instances of the class can be used as component.
* No need to extend from `@glimmer/component`.
*
* ```js
* // app/components/my-component.js
* import { createMachine } from 'xstate';
*
* export default createMachine({ ... });
* ```
* ```hbs
* {{!-- app/templates/application.hbs}}
*
* ```
*
* @param {(owner: Owner) => import('@glimmer/interfaces').ComponentManager} managerFactory
* @param {object} object that will be managed by the return value of `managerFactory`
*
*/
/**
* Tells Glimmer what capabilities a Component Manager will have
*
* ```js
* import { capabilities } from '@ember/component';
*
* export class MyComponentManager {
* capabilities = capabilities('3.13', {
* // capabilities listed here
* })
* }
* ```
*
*
* For a full list of capabilities, their defaults, and how they are used, see [@glimmer/manager](https://github.com/glimmerjs/glimmer-vm/blob/4f1bef0d9a8a3c3ebd934c5b6e09de4c5f6e4468/packages/%40glimmer/manager/lib/public/component.ts#L26)
*
*
* @method capabilities
* @static
* @for @ember/component
* @public
* @param {'3.13'} managerApiVersion
* @param {Parameters[1]} options
*
*/
}