# @types/ember__controller

> TypeScript definitions for @ember/controller

Latest version **4.0.12** (published 2024-01-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install @types/ember__controller
pnpm add @types/ember__controller
yarn add @types/ember__controller
bun add @types/ember__controller
```

## Health

**Score 45/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; high maintenance score; popular repo; extremely popular.

Warnings: low downloads; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 4.0.12 |
| Published | 2024-01-16 |
| First published | 2018-09-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 7.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51445 |
| Maintainers | types |

## Links

- npm: https://www.npmjs.com/package/@types/ember__controller
- Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
- Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ember__controller
- npm.io page: https://npm.io/package/@types/ember__controller

## Dependencies (1)

- [@types/ember__object](https://npm.io/package/@types/ember__object.md) *

## Recent versions

- 4.0.12 (latest) — 2024-01-16
- 4.0.11 (ts4.5) — 2023-11-21
- 4.0.6 (ts4.4) — 2023-08-11
- 3.16.6 (ts3.7) — 2021-09-02
- 3.0.8 (ts2.8) — 2020-03-28
- 3.16.14 — 2024-01-16
- 3.16.13 — 2023-11-21
- 3.16.12 — 2023-11-07
- 4.0.10 — 2023-11-07
- 3.16.11 — 2023-10-18
- 4.0.9 — 2023-10-18
- 3.16.10 — 2023-09-23
- 4.0.8 — 2023-09-23
- 3.16.9 — 2023-09-22
- 4.0.7 — 2023-09-22
- … 22 more at https://npm.io/package/@types/ember__controller/versions

## README

# Installation
> `npm install --save @types/ember__controller`

# Summary
This package contains type definitions for @ember/controller (https://emberjs.com/api/ember/4.0/modules/@ember%2Fcontroller).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ember__controller.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ember__controller/index.d.ts)
````ts
import EmberObject from "@ember/object";
import ActionHandler from "@ember/object/-private/action-handler";
import ComputedProperty from "@ember/object/computed";
import Mixin from "@ember/object/mixin";

// eslint-disable-next-line @definitelytyped/strict-export-declare-modifiers
type QueryParamTypes = "boolean" | "number" | "array" | "string";
// eslint-disable-next-line @definitelytyped/strict-export-declare-modifiers
type QueryParamScopeTypes = "controller" | "model";

// eslint-disable-next-line @definitelytyped/strict-export-declare-modifiers
interface QueryParamConfig {
    type?: QueryParamTypes | undefined;
    scope?: QueryParamScopeTypes | undefined;
    as?: string | undefined;
}

/**
 * Additional methods for the Controller.
 */
interface ControllerMixin extends ActionHandler {
    /**
     * @deprecated until 5.0. Use `RouterService.reaplceWith` instead.
     */
    replaceRoute(name: string, ...args: any[]): void;
    /**
     * @deprecated until 5.0. Use `RouterService.transitionTo` instead.
     */
    transitionToRoute(name: string, ...args: any[]): void;
    /**
     * @deprecated until 5.0. Use `RouterService.transitionTo` instead.
     */
    transitionToRoute(...args: any[]): void;
    model: unknown;
    queryParams: Readonly<Array<string | Record<string, QueryParamConfig | string | undefined>>>;
    target: object;
}

export default class Controller extends EmberObject {}
// eslint-disable-next-line @typescript-eslint/no-empty-interface -- used for declaration merge
export default interface Controller extends ControllerMixin {}

export function inject(): ComputedProperty<Controller>;
export function inject<K extends keyof Registry>(name: K): ComputedProperty<Registry[K]>;
export function inject(target: object, propertyKey: string | symbol): void;

// A type registry for Ember `Controller`s. Meant to be declaration-merged
// so string lookups resolve to the correct type.
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface Registry extends Record<string, Controller | undefined> {}

declare module "@ember/owner" {
    interface DIRegistry {
        controller: Registry;
    }
}

// We need to define the `ControllerMixin` type above, but it is not public API
// and should not be importable, so shut off auto-importing.
export {};

````

### Additional Details
 * Last updated: Tue, 16 Jan 2024 17:36:15 GMT
 * Dependencies: [@types/ember__object](https://npmjs.com/package/@types/ember__object)

# Credits
These definitions were written by [Krystan HuffMenne](https://github.com/gitKrystan), [James C. Davis](https://github.com/jamescdavis), and [Peter Wagenet](https://github.com/wagenet).

---
_Source: https://npm.io/package/@types/ember__controller · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
