// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import { APIResource } from '../../resource';
import * as SFUAPI from './sfu';
import {
  SFU,
  SFUCreateParams,
  SFUCreateResponse,
  SFUDeleteParams,
  SFUDeleteResponse,
  SFUGetParams,
  SFUGetResponse,
  SFUListParams,
  SFUListResponse,
  SFUListResponsesSinglePage,
  SFUUpdateParams,
  SFUUpdateResponse,
} from './sfu';
import * as TURNAPI from './turn';
import {
  TURN,
  TURNCreateParams,
  TURNCreateResponse,
  TURNDeleteParams,
  TURNDeleteResponse,
  TURNGetParams,
  TURNGetResponse,
  TURNListParams,
  TURNListResponse,
  TURNListResponsesSinglePage,
  TURNUpdateParams,
  TURNUpdateResponse,
} from './turn';

export class Calls extends APIResource {
  sfu: SFUAPI.SFU = new SFUAPI.SFU(this._client);
  turn: TURNAPI.TURN = new TURNAPI.TURN(this._client);
}

Calls.SFU = SFU;
Calls.SFUListResponsesSinglePage = SFUListResponsesSinglePage;
Calls.TURN = TURN;
Calls.TURNListResponsesSinglePage = TURNListResponsesSinglePage;

export declare namespace Calls {
  export {
    SFU as SFU,
    type SFUCreateResponse as SFUCreateResponse,
    type SFUUpdateResponse as SFUUpdateResponse,
    type SFUListResponse as SFUListResponse,
    type SFUDeleteResponse as SFUDeleteResponse,
    type SFUGetResponse as SFUGetResponse,
    SFUListResponsesSinglePage as SFUListResponsesSinglePage,
    type SFUCreateParams as SFUCreateParams,
    type SFUUpdateParams as SFUUpdateParams,
    type SFUListParams as SFUListParams,
    type SFUDeleteParams as SFUDeleteParams,
    type SFUGetParams as SFUGetParams,
  };

  export {
    TURN as TURN,
    type TURNCreateResponse as TURNCreateResponse,
    type TURNUpdateResponse as TURNUpdateResponse,
    type TURNListResponse as TURNListResponse,
    type TURNDeleteResponse as TURNDeleteResponse,
    type TURNGetResponse as TURNGetResponse,
    TURNListResponsesSinglePage as TURNListResponsesSinglePage,
    type TURNCreateParams as TURNCreateParams,
    type TURNUpdateParams as TURNUpdateParams,
    type TURNListParams as TURNListParams,
    type TURNDeleteParams as TURNDeleteParams,
    type TURNGetParams as TURNGetParams,
  };
}
