/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import { ClientSDK } from "../lib/sdks.js";
import { Analytics } from "./analytics.js";
import { Customers } from "./customers.js";
import { Domains } from "./domains.js";
import { EmbedTokens } from "./embedtokens.js";
import { Events } from "./events.js";
import { Links } from "./links.js";
import { Metatags } from "./metatags.js";
import { QRCodes } from "./qrcodes.js";
import { Tags } from "./tags.js";
import { Track } from "./track.js";
import { Workspaces } from "./workspaces.js";

export class Dub extends ClientSDK {
  private _links?: Links;
  get links(): Links {
    return (this._links ??= new Links(this._options));
  }

  private _analytics?: Analytics;
  get analytics(): Analytics {
    return (this._analytics ??= new Analytics(this._options));
  }

  private _events?: Events;
  get events(): Events {
    return (this._events ??= new Events(this._options));
  }

  private _tags?: Tags;
  get tags(): Tags {
    return (this._tags ??= new Tags(this._options));
  }

  private _domains?: Domains;
  get domains(): Domains {
    return (this._domains ??= new Domains(this._options));
  }

  private _track?: Track;
  get track(): Track {
    return (this._track ??= new Track(this._options));
  }

  private _customers?: Customers;
  get customers(): Customers {
    return (this._customers ??= new Customers(this._options));
  }

  private _workspaces?: Workspaces;
  get workspaces(): Workspaces {
    return (this._workspaces ??= new Workspaces(this._options));
  }

  private _embedTokens?: EmbedTokens;
  get embedTokens(): EmbedTokens {
    return (this._embedTokens ??= new EmbedTokens(this._options));
  }

  private _qrCodes?: QRCodes;
  get qrCodes(): QRCodes {
    return (this._qrCodes ??= new QRCodes(this._options));
  }

  private _metatags?: Metatags;
  get metatags(): Metatags {
    return (this._metatags ??= new Metatags(this._options));
  }
}
