import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js"; import * as core from "../../../../core/index.js"; import * as Whop from "../../../index.js"; export declare namespace CoursesClient { type Options = BaseClientOptions; interface RequestOptions extends BaseRequestOptions { } } export declare class CoursesClient { protected readonly _options: NormalizedClientOptionsWithAuth; constructor(options?: CoursesClient.Options); /** * Returns a paginated list of the courses in an experience or an account. `hidden` courses are included only for callers with `courses:update`. * * Required permissions: * - `courses:read` * * @param {Whop.ListCoursesRequest} request * @param {CoursesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Whop.BadRequestError} * @throws {@link Whop.UnauthorizedError} * @throws {@link Whop.ForbiddenError} * @throws {@link Whop.NotFoundError} * @throws {@link Whop.UnprocessableEntityError} * @throws {@link Whop.TooManyRequestsError} * @throws {@link Whop.InternalServerError} * @throws {@link errors.WhopError} * @throws {@link errors.WhopTimeoutError} * * @example * await client.courses.list({ * first: 42, * last: 42, * experience_id: "exp_xxxxxxxxxxxxxx", * account_id: "biz_xxxxxxxxxxxxxx" * }) */ list(request?: Whop.ListCoursesRequest, requestOptions?: CoursesClient.RequestOptions): Promise>; /** * Create a new course within an experience, with optional chapters, lessons, and a certificate. * * Required permissions: * - `courses:update` * * @param {Whop.CreateCoursesRequest} request * @param {CoursesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Whop.BadRequestError} * @throws {@link Whop.UnauthorizedError} * @throws {@link Whop.ForbiddenError} * @throws {@link Whop.NotFoundError} * @throws {@link Whop.UnprocessableEntityError} * @throws {@link Whop.TooManyRequestsError} * @throws {@link Whop.InternalServerError} * @throws {@link errors.WhopError} * @throws {@link errors.WhopTimeoutError} * * @example * await client.courses.create({ * experience_id: "exp_xxxxxxxxxxxxxx", * title: "title" * }) */ create(request: Whop.CreateCoursesRequest, requestOptions?: CoursesClient.RequestOptions): core.HttpResponsePromise; private __create; /** * Retrieves the details of an existing course. A `hidden` course is returned only to callers with `courses:update`. * * Required permissions: * - `courses:read` * * @param {Whop.RetrieveCoursesRequest} request * @param {CoursesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Whop.BadRequestError} * @throws {@link Whop.UnauthorizedError} * @throws {@link Whop.ForbiddenError} * @throws {@link Whop.NotFoundError} * @throws {@link Whop.UnprocessableEntityError} * @throws {@link Whop.TooManyRequestsError} * @throws {@link Whop.InternalServerError} * @throws {@link errors.WhopError} * @throws {@link errors.WhopTimeoutError} * * @example * await client.courses.retrieve({ * id: "cors_xxxxxxxxxxxxx" * }) */ retrieve(request: Whop.RetrieveCoursesRequest, requestOptions?: CoursesClient.RequestOptions): core.HttpResponsePromise; private __retrieve; /** * Permanently delete a course and all of its chapters, lessons, and student progress. * * Required permissions: * - `courses:update` * * @param {Whop.DeleteCoursesRequest} request * @param {CoursesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Whop.BadRequestError} * @throws {@link Whop.UnauthorizedError} * @throws {@link Whop.ForbiddenError} * @throws {@link Whop.NotFoundError} * @throws {@link Whop.UnprocessableEntityError} * @throws {@link Whop.TooManyRequestsError} * @throws {@link Whop.InternalServerError} * @throws {@link errors.WhopError} * @throws {@link errors.WhopTimeoutError} * * @example * await client.courses.delete({ * id: "cors_xxxxxxxxxxxxx" * }) */ delete(request: Whop.DeleteCoursesRequest, requestOptions?: CoursesClient.RequestOptions): core.HttpResponsePromise; private __delete; /** * Update a course's title, description, visibility, thumbnail, or chapter ordering. * * Required permissions: * - `courses:update` * * @param {Whop.UpdateCoursesRequest} request * @param {CoursesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Whop.BadRequestError} * @throws {@link Whop.UnauthorizedError} * @throws {@link Whop.ForbiddenError} * @throws {@link Whop.NotFoundError} * @throws {@link Whop.UnprocessableEntityError} * @throws {@link Whop.TooManyRequestsError} * @throws {@link Whop.InternalServerError} * @throws {@link errors.WhopError} * @throws {@link errors.WhopTimeoutError} * * @example * await client.courses.update({ * id: "cors_xxxxxxxxxxxxx" * }) */ update(request: Whop.UpdateCoursesRequest, requestOptions?: CoursesClient.RequestOptions): core.HttpResponsePromise; private __update; }