# Type alias Implementation<C>

Implementation<C>: {
canDelegateAccount: ((username: string) => Promise<boolean>);
createChannel: ((options: ChannelOptions) => Promise<Channel>);
delegateAccount: ((username: string, audience: string) => Promise<Record<string, unknown>>);
isUsernameAvailable: ((username: string) => Promise<boolean>);
isUsernameValid: ((username: string) => Promise<boolean>);
linkDevice: ((username: string, data: Record<string, unknown>) => Promise<void>);
register: ((options: {
email?: string;
username: string;
}) => Promise<{
success: boolean;
}>);
session: ((components: C, authenticatedUsername: Maybe<string>, config: Configuration) => Promise<Maybe<Session>>);
type: string;
}

#### Type Parameters

- #### C

#### Type declaration

- ##### canDelegateAccount: ((username: string) => Promise<boolean>)

  - - (username: string): Promise<boolean>

    - #### Parameters

      - ##### username: string

      #### Returns Promise<boolean>

- ##### createChannel: ((options: ChannelOptions) => Promise<Channel>)

  - - (options: ChannelOptions): Promise<Channel>

    - #### Parameters

      - ##### options: ChannelOptions

      #### Returns Promise<Channel>

- ##### delegateAccount: ((username: string, audience: string) => Promise<Record<string, unknown>>)

  - - (username: string, audience: string): Promise<Record<string, unknown>>

    - #### Parameters

      - ##### username: string

      - ##### audience: string

      #### Returns Promise<Record<string, unknown>>

- ##### isUsernameAvailable: ((username: string) => Promise<boolean>)

  - - (username: string): Promise<boolean>

    - #### Parameters

      - ##### username: string

      #### Returns Promise<boolean>

- ##### isUsernameValid: ((username: string) => Promise<boolean>)

  - - (username: string): Promise<boolean>

    - #### Parameters

      - ##### username: string

      #### Returns Promise<boolean>

- ##### linkDevice: ((username: string, data: Record<string, unknown>) => Promise<void>)

  - - (username: string, data: Record<string, unknown>): Promise<void>

    - #### Parameters

      - ##### username: string

      - ##### data: Record<string, unknown>

      #### Returns Promise<void>

- ##### register: ((options: {
  email?: string;
  username: string;
  }) => Promise<{
  success: boolean;
  }>)

  - - (options: {
      email?: string;
      username: string;
      }): Promise<{
      success: boolean;
      }>

    - #### Parameters

      - ##### options: {
        email?: string;
        username: string;
        }

        - ##### `Optional` email?: string

        - ##### username: string

      #### Returns Promise<{
      success: boolean;
      }>

- ##### session: ((components: C, authenticatedUsername: Maybe<string>, config: Configuration) => Promise<Maybe<Session>>)

  - - (components: C, authenticatedUsername: Maybe<string>, config: Configuration): Promise<Maybe<Session>>

    - #### Parameters

      - ##### components: C

      - ##### authenticatedUsername: Maybe<string>

      - ##### config: Configuration

      #### Returns Promise<Maybe<Session>>

- ##### type: string

- Defined in components/auth/implementation.ts:8

Generated using TypeDoc