# Core

`interface` in `seedcord` · v0.15.0

<https://docs.seedcord.org/packages/seedcord/0.15.0/interfaces/core>

Main interface for Seedcord core functionality

This interface can be augmented via declaration merging to add type-safe plugin definitions when using `this.core#` in handlers.

Only add classes that extend [`Plugin`](/packages/seedcord/0.15.0/classes/plugin) to this

```ts
interface Core extends SeedcordInstance
```

## Examples

```ts
declare module 'seedcord' {
  interface Core {
    db: Mongo;
  }
}
```

## Properties

### bot

```ts
readonly bot: Bot
```

### bus

```ts
readonly bus: Bus
```

### config

```ts
readonly config: Config
```

### rateLimiter

```ts
readonly rateLimiter: RateLimiter
```

### shutdown

```ts
readonly shutdown: CoordinatedShutdown
```

### startup

```ts
readonly startup: CoordinatedStartup
```

## Methods

### start

```ts
async start(): Promise<this>
```
