import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as operations from "../models/operations/index.js";
import { PageIterator } from "../types/operations.js";
export declare class Courses extends ClientSDK {
    /**
     * Get resources for a course
     *
     * @remarks
     * To get the collection of resources assigned to a specific course. If the corresponding record cannot be located, the api will return a 404 error code and message 'Course not found.'
     */
    getResources(request: operations.GetResourcesForCourseRequest, options?: RequestOptions): Promise<PageIterator<operations.GetResourcesForCourseResponse, {
        offset: number;
    }>>;
    /**
     * Assign a resource to a course
     *
     * @remarks
     * To assign an existing resource to the specified course. The course sourcedId is supplied by the requesting system. If the corresponding record cannot be located, the api will return a 404 error code and message 'Course or resource not found.'
     */
    assignResource(request: operations.AssignResourceToCourseRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
    /**
     * Get All Courses
     *
     * @remarks
     * To get all Courses on the service provider.
     */
    getAll(request: operations.GetAllCoursesRequest, options?: RequestOptions): Promise<PageIterator<operations.GetAllCoursesResponse, {
        offset: number;
    }>>;
    /**
     * Create a Course
     *
     * @remarks
     * To create a new Course. The responding system must return the set of sourcedIds that have been allocated to the newly created course record.
     */
    create(request?: operations.CreateCourseRequest | undefined, options?: RequestOptions): Promise<operations.CreateCourseResponse>;
    /**
     * Get a specific Course
     *
     * @remarks
     * Get a specific Course on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Course not found.'
     */
    get(request: operations.GetCourseRequest, options?: RequestOptions): Promise<operations.GetCourseResponse>;
    /**
     * Update a Course
     *
     * @remarks
     * To update an existing Course. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    update(request: operations.PutCourseRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
    /**
     * Delete a Course
     *
     * @remarks
     * Perform a soft delete on a specific Course on the service provider. The operation changes the status of the Course to 'tobedeleted'.
     */
    delete(request: operations.DeleteCourseRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
    /**
     * Create Component Resource
     *
     * @remarks
     * To create a new Component Resource. The responding system must return the set of sourcedIds that have been allocated to the newly created componentResource record.
     */
    createComponentResource(request?: operations.CreateComponentResourceRequest | undefined, options?: RequestOptions): Promise<operations.CreateComponentResourceResponse>;
    /**
     * Get a specific Component Resource
     *
     * @remarks
     * Get a specific Component Resource on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Component Resource not found.'
     */
    getComponentResource(request: operations.GetComponentResourceRequest, options?: RequestOptions): Promise<operations.GetComponentResourceResponse>;
    /**
     * Update a Component Resource
     *
     * @remarks
     * To update an existing Component Resource. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    updateComponentResource(request: operations.PutComponentResourceRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
    /**
     * Delete a Component Resource
     *
     * @remarks
     * Perform a soft delete on a specific Component Resource on the service provider. The operation changes the status of the Component Resource to 'tobedeleted'.
     */
    deleteComponentResource(request: operations.DeleteComponentResourceRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
    /**
     * Create Course Component
     *
     * @remarks
     * Used when creating a new course component or module
     */
    createComponent(request?: operations.CreateCourseComponentRequest | undefined, options?: RequestOptions): Promise<operations.CreateCourseComponentResponse>;
    /**
     * Get a specific Course Component
     *
     * @remarks
     * Get a specific Course Component on the service provider. If the corresponding record cannot be located, the api will return a 404 error code and message 'Course Component not found.'
     */
    getComponent(request: operations.GetCourseComponentRequest, options?: RequestOptions): Promise<operations.GetCourseComponentResponse>;
    /**
     * Update a Course Component
     *
     * @remarks
     * To update an existing Course Component. The sourcedId for the record to be updated is supplied by the requesting system.
     */
    updateComponent(request: operations.PutCourseComponentRequest, options?: RequestOptions): Promise<{
        [k: string]: any;
    }>;
}
//# sourceMappingURL=courses.d.ts.map