@examplary/sdk 2.0.1 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,18 @@
1
- export interface paths {
1
+ import { AxiosRequestConfig, CreateAxiosDefaults, AxiosInstance, AxiosError, InternalAxiosRequestConfig, AxiosResponse } from 'axios';
2
+
3
+ type ExamplaryDefaults = Omit<CreateAxiosDefaults, "baseURL">;
4
+ interface ExamplaryClientOptions extends ExamplaryDefaults {
5
+ apiKey: string;
6
+ baseUrl?: string;
7
+ }
8
+ type ExamplaryRequestOptions = Omit<AxiosRequestConfig, "method" | "url" | "data" | "params" | "baseURL">;
9
+
10
+ interface ClientContext {
11
+ axios: AxiosInstance;
12
+ apiKey: string;
13
+ }
14
+
15
+ interface paths {
2
16
  "/question-types/public": {
3
17
  parameters: {
4
18
  query?: never;
@@ -1910,8 +1924,7 @@ export interface paths {
1910
1924
  trace?: never;
1911
1925
  };
1912
1926
  }
1913
- export type webhooks = Record<string, never>;
1914
- export interface components {
1927
+ interface components {
1915
1928
  schemas: never;
1916
1929
  responses: never;
1917
1930
  parameters: never;
@@ -1919,8 +1932,7 @@ export interface components {
1919
1932
  headers: never;
1920
1933
  pathItems: never;
1921
1934
  }
1922
- export type $defs = Record<string, never>;
1923
- export interface operations {
1935
+ interface operations {
1924
1936
  "questionTypes.listPublic": {
1925
1937
  parameters: {
1926
1938
  query?: never;
@@ -5423,3 +5435,1533 @@ export interface operations {
5423
5435
  responses: never;
5424
5436
  };
5425
5437
  }
5438
+
5439
+ interface _PathOverrides {
5440
+ "questionTypes.get": {
5441
+ id: string;
5442
+ };
5443
+ "questionTypes.delete": {
5444
+ id: string;
5445
+ };
5446
+ "questionTypes.getQti3Pci": {
5447
+ questionTypeId: string;
5448
+ };
5449
+ "questionTypes.enable": {
5450
+ questionTypeId: string;
5451
+ };
5452
+ "questionTypes.disable": {
5453
+ questionTypeId: string;
5454
+ };
5455
+ "library.publishers.items.list": {
5456
+ publisherId: string;
5457
+ };
5458
+ "library.publishers.items.create": {
5459
+ publisherId: string;
5460
+ };
5461
+ "library.items.update": {
5462
+ itemId: string;
5463
+ };
5464
+ "library.items.delete": {
5465
+ itemId: string;
5466
+ };
5467
+ "library.publishers.update": {
5468
+ publisherId: string;
5469
+ };
5470
+ "library.publishers.delete": {
5471
+ publisherId: string;
5472
+ };
5473
+ "embedSessions.get": {
5474
+ id: string;
5475
+ };
5476
+ "embedSessions.revoke": {
5477
+ id: string;
5478
+ };
5479
+ "attributes.update": {
5480
+ id: string;
5481
+ };
5482
+ "attributes.delete": {
5483
+ id: string;
5484
+ };
5485
+ "taxonomies.update": {
5486
+ id: string;
5487
+ };
5488
+ "taxonomies.delete": {
5489
+ id: string;
5490
+ };
5491
+ "permissions.list": {
5492
+ resource: string;
5493
+ };
5494
+ "permissions.assign": {
5495
+ resource: string;
5496
+ };
5497
+ "permissions.getActorRole": {
5498
+ actor: string;
5499
+ resource: string;
5500
+ };
5501
+ "permissions.delete": {
5502
+ resource: string;
5503
+ actor: string;
5504
+ };
5505
+ "users.update": {
5506
+ id: string;
5507
+ };
5508
+ "users.delete": {
5509
+ id: string;
5510
+ };
5511
+ "exams.sessions.list": {
5512
+ examId: string;
5513
+ };
5514
+ "exams.sessions.import": {
5515
+ examId: string;
5516
+ };
5517
+ "exams.sessions.scan": {
5518
+ examId: string;
5519
+ };
5520
+ "exams.sessions.scanDocument": {
5521
+ examId: string;
5522
+ };
5523
+ "exams.sessions.get": {
5524
+ examId: string;
5525
+ sessionId: string;
5526
+ };
5527
+ "exams.sessions.delete": {
5528
+ examId: string;
5529
+ sessionId: string;
5530
+ };
5531
+ "exams.sessions.saveFeedback": {
5532
+ examId: string;
5533
+ sessionId: string;
5534
+ };
5535
+ "exams.sessions.saveOverallFeedback": {
5536
+ examId: string;
5537
+ sessionId: string;
5538
+ };
5539
+ "exams.sessions.generateOverallFeedback": {
5540
+ examId: string;
5541
+ sessionId: string;
5542
+ };
5543
+ "exams.sessions.acceptAllSuggestions": {
5544
+ examId: string;
5545
+ sessionId: string;
5546
+ };
5547
+ "exams.sessions.acceptSuggestion": {
5548
+ examId: string;
5549
+ sessionId: string;
5550
+ questionId: string;
5551
+ };
5552
+ "exams.sessions.editAnswer": {
5553
+ examId: string;
5554
+ sessionId: string;
5555
+ questionId: string;
5556
+ };
5557
+ "exams.questions.import": {
5558
+ examId: string;
5559
+ };
5560
+ "exams.questions.generate": {
5561
+ examId: string;
5562
+ };
5563
+ "exams.questions.get": {
5564
+ examId: string;
5565
+ questionId: string;
5566
+ };
5567
+ "exams.questions.regenerate": {
5568
+ examId: string;
5569
+ questionId: string;
5570
+ };
5571
+ "exams.export.qti3Zip": {
5572
+ examId: string;
5573
+ };
5574
+ "exams.export.qti21Zip": {
5575
+ examId: string;
5576
+ };
5577
+ "exams.get": {
5578
+ id: string;
5579
+ };
5580
+ "exams.update": {
5581
+ id: string;
5582
+ };
5583
+ "exams.delete": {
5584
+ id: string;
5585
+ };
5586
+ "exams.duplicate": {
5587
+ examId: string;
5588
+ };
5589
+ "exams.print": {
5590
+ examId: string;
5591
+ };
5592
+ "exams.startGeneration": {
5593
+ examId: string;
5594
+ };
5595
+ "exams.cancelGeneration": {
5596
+ examId: string;
5597
+ };
5598
+ "exams.getContextSuggestions": {
5599
+ examId: string;
5600
+ };
5601
+ "practiceSpaces.get": {
5602
+ id: string;
5603
+ };
5604
+ "practiceSpaces.update": {
5605
+ id: string;
5606
+ };
5607
+ "practiceSpaces.delete": {
5608
+ id: string;
5609
+ };
5610
+ "practiceSpaces.duplicate": {
5611
+ practiceSpaceId: string;
5612
+ };
5613
+ "practiceSpaces.generateTopics": {
5614
+ practiceSpaceId: string;
5615
+ };
5616
+ "practiceSpaces.cancelGenerateTopics": {
5617
+ practiceSpaceId: string;
5618
+ };
5619
+ "practiceSpaces.questionsPreview": {
5620
+ practiceSpaceId: string;
5621
+ };
5622
+ "practiceSpaces.getProgress": {
5623
+ practiceSpaceId: string;
5624
+ };
5625
+ "practiceSpaces.generateTopicFeedback": {
5626
+ practiceSpaceId: string;
5627
+ };
5628
+ "practiceSpaces.students.list": {
5629
+ practiceSpaceId: string;
5630
+ };
5631
+ "practiceSpaces.students.get": {
5632
+ practiceSpaceId: string;
5633
+ studentId: string;
5634
+ };
5635
+ "practiceSpaces.sessions.create": {
5636
+ practiceSpaceId: string;
5637
+ };
5638
+ "practiceSpaces.sessions.getMine": {
5639
+ practiceSpaceId: string;
5640
+ };
5641
+ "practiceSpaces.sessions.get": {
5642
+ practiceSpaceId: string;
5643
+ sessionId: string;
5644
+ };
5645
+ "practiceSpaces.sessions.saveAnswer": {
5646
+ practiceSpaceId: string;
5647
+ sessionId: string;
5648
+ questionId: string;
5649
+ };
5650
+ "sourceMaterials.get": {
5651
+ id: string;
5652
+ };
5653
+ "sourceMaterials.update": {
5654
+ id: string;
5655
+ };
5656
+ "sourceMaterials.delete": {
5657
+ id: string;
5658
+ };
5659
+ "sourceMaterials.slice": {
5660
+ sourceMaterialId: string;
5661
+ };
5662
+ "folders.update": {
5663
+ id: string;
5664
+ };
5665
+ "folders.delete": {
5666
+ id: string;
5667
+ };
5668
+ "groups.update": {
5669
+ id: string;
5670
+ };
5671
+ "groups.delete": {
5672
+ id: string;
5673
+ };
5674
+ "groups.listMembers": {
5675
+ groupId: string;
5676
+ };
5677
+ "groups.addMember": {
5678
+ groupId: string;
5679
+ };
5680
+ "groups.updateMember": {
5681
+ groupId: string;
5682
+ userId: string;
5683
+ };
5684
+ "groups.removeMember": {
5685
+ groupId: string;
5686
+ userId: string;
5687
+ };
5688
+ "questionBank.update": {
5689
+ id: string;
5690
+ };
5691
+ "questionBank.delete": {
5692
+ id: string;
5693
+ };
5694
+ "patchRubrics:id": {
5695
+ id: string;
5696
+ };
5697
+ "deleteRubrics:id": {
5698
+ id: string;
5699
+ };
5700
+ "jobs.get": {
5701
+ id: string;
5702
+ };
5703
+ "jobs.cancel": {
5704
+ id: string;
5705
+ };
5706
+ }
5707
+ type _ToObject<T> = [Exclude<T, undefined>] extends [never] ? {} : Exclude<T, undefined> extends object ? Exclude<T, undefined> : {};
5708
+ type _Query<K extends keyof operations> = operations[K] extends {
5709
+ parameters: {
5710
+ query?: infer Q;
5711
+ };
5712
+ } ? _ToObject<Q> : {};
5713
+ type _Body<K extends keyof operations> = operations[K] extends {
5714
+ requestBody?: infer R;
5715
+ } ? Exclude<R, undefined> extends {
5716
+ content: {
5717
+ "application/json": infer B;
5718
+ };
5719
+ } ? _ToObject<B> : {} : {};
5720
+ type _SuccessShape<R> = [R] extends [never] ? never : R extends {
5721
+ 200: infer T;
5722
+ } ? T : R extends {
5723
+ 201: infer T;
5724
+ } ? T : R extends {
5725
+ 202: infer T;
5726
+ } ? T : R extends {
5727
+ 204: infer T;
5728
+ } ? T : never;
5729
+ type Args<K extends keyof operations> = (K extends keyof _PathOverrides ? _PathOverrides[K] : {}) & _Query<K> & _Body<K>;
5730
+ type Response<K extends keyof operations> = _SuccessShape<operations[K]["responses"]> extends infer X ? [X] extends [never] ? any : X extends {
5731
+ content: {
5732
+ "application/json": infer T;
5733
+ };
5734
+ } ? T : any : any;
5735
+ declare class QuestionTypes {
5736
+ private readonly ctx;
5737
+ constructor(ctx: ClientContext);
5738
+ /**
5739
+ * List public question types
5740
+ *
5741
+ * Lists all public question types, which can be enabled in workspaces.
5742
+ *
5743
+ * API endpoint: `GET /question-types/public`
5744
+ */
5745
+ listPublic(args?: Args<"questionTypes.listPublic">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.listPublic">>;
5746
+ /**
5747
+ * Get question type
5748
+ *
5749
+ * Retrieves a specific question type by its ID.
5750
+ *
5751
+ * API endpoint: `GET /question-types/{id}`
5752
+ */
5753
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.get">>;
5754
+ get(args: Args<"questionTypes.get">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.get">>;
5755
+ /**
5756
+ * Delete question type
5757
+ *
5758
+ * Deletes a specific question type by its ID. Note that only the owner organization of the question type can delete it, and only if it has not been used in an exam.
5759
+ *
5760
+ * API endpoint: `DELETE /question-types/{id}`
5761
+ */
5762
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.delete">>;
5763
+ delete(args: Args<"questionTypes.delete">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.delete">>;
5764
+ /**
5765
+ * Get question type PCI module for QTI 3 export
5766
+ *
5767
+ * Get JS module for a question type PCI for QTI 3 export.
5768
+ *
5769
+ * API endpoint: `GET /question-types/{questionTypeId}/export/qti3-pci`
5770
+ */
5771
+ getQti3Pci(questionTypeId: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.getQti3Pci">>;
5772
+ getQti3Pci(args: Args<"questionTypes.getQti3Pci">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.getQti3Pci">>;
5773
+ /**
5774
+ * List question types
5775
+ *
5776
+ * Lists all question types, either those available by default or those created within the user's organization.
5777
+ *
5778
+ * API endpoint: `GET /question-types`
5779
+ */
5780
+ list(args?: Args<"questionTypes.list">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.list">>;
5781
+ /**
5782
+ * Upsert question type
5783
+ *
5784
+ * Creates a new question type or updates an existing one. If the question type already exists, it will be updated; otherwise, a new one will be created.
5785
+ *
5786
+ * API endpoint: `POST /question-types`
5787
+ */
5788
+ upsert(args?: Args<"questionTypes.upsert">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.upsert">>;
5789
+ /**
5790
+ * Enable question type
5791
+ *
5792
+ * Enable a question type for the current workspace.
5793
+ *
5794
+ * API endpoint: `POST /question-types/{questionTypeId}/enable`
5795
+ */
5796
+ enable(questionTypeId: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.enable">>;
5797
+ enable(args: Args<"questionTypes.enable">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.enable">>;
5798
+ /**
5799
+ * Disable question type
5800
+ *
5801
+ * Disable a question type for the current workspace.
5802
+ *
5803
+ * API endpoint: `POST /question-types/{questionTypeId}/disable`
5804
+ */
5805
+ disable(questionTypeId: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.disable">>;
5806
+ disable(args: Args<"questionTypes.disable">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.disable">>;
5807
+ }
5808
+ declare class LibraryPublishersItems {
5809
+ private readonly ctx;
5810
+ constructor(ctx: ClientContext);
5811
+ /**
5812
+ * List items by publisher
5813
+ *
5814
+ * Lists all library items for the specified publisher profile.
5815
+ *
5816
+ * API endpoint: `GET /library/publishers/{publisherId}/items`
5817
+ */
5818
+ list(publisherId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.list">>;
5819
+ list(args: Args<"library.publishers.items.list">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.list">>;
5820
+ /**
5821
+ * Create library item
5822
+ *
5823
+ * Adds an item to the library. Only the publisher owner can add items to their publisher profile.
5824
+ *
5825
+ * API endpoint: `POST /library/publishers/{publisherId}/items`
5826
+ */
5827
+ create(args: Args<"library.publishers.items.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.create">>;
5828
+ }
5829
+ declare class LibraryPublishers {
5830
+ private readonly ctx;
5831
+ readonly items: LibraryPublishersItems;
5832
+ constructor(ctx: ClientContext);
5833
+ /**
5834
+ * List featured publishers
5835
+ *
5836
+ * Lists all library publishers that are marked as featured.
5837
+ *
5838
+ * API endpoint: `GET /library/publishers/featured`
5839
+ */
5840
+ listFeatured(args?: Args<"library.publishers.listFeatured">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listFeatured">>;
5841
+ /**
5842
+ * List all publishers
5843
+ *
5844
+ * Lists all library publisher profiles.
5845
+ *
5846
+ * API endpoint: `GET /library/publishers`
5847
+ */
5848
+ listAll(args?: Args<"library.publishers.listAll">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listAll">>;
5849
+ /**
5850
+ * Create publisher
5851
+ *
5852
+ * Creates a new library publisher profile.
5853
+ *
5854
+ * API endpoint: `POST /library/publishers`
5855
+ */
5856
+ create(args?: Args<"library.publishers.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.create">>;
5857
+ /**
5858
+ * List my publishers
5859
+ *
5860
+ * Lists all library publisher profiles created by the authenticated user.
5861
+ *
5862
+ * API endpoint: `GET /library/publishers/mine`
5863
+ */
5864
+ listMine(args?: Args<"library.publishers.listMine">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listMine">>;
5865
+ /**
5866
+ * Update publisher
5867
+ *
5868
+ * Updates a library publisher profile. Only the owner can update their publisher profile.
5869
+ *
5870
+ * API endpoint: `PATCH /library/publishers/{publisherId}`
5871
+ */
5872
+ update(args: Args<"library.publishers.update">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.update">>;
5873
+ /**
5874
+ * Delete publisher
5875
+ *
5876
+ * Deletes a library publisher profile. Only the owner can delete their publisher profile.
5877
+ *
5878
+ * API endpoint: `DELETE /library/publishers/{publisherId}`
5879
+ */
5880
+ delete(publisherId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.delete">>;
5881
+ delete(args: Args<"library.publishers.delete">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.delete">>;
5882
+ }
5883
+ declare class LibraryItems {
5884
+ private readonly ctx;
5885
+ constructor(ctx: ClientContext);
5886
+ /**
5887
+ * List featured library items
5888
+ *
5889
+ * Lists all library items that are marked as featured.
5890
+ *
5891
+ * API endpoint: `GET /library/items/featured`
5892
+ */
5893
+ listFeatured(args?: Args<"library.items.listFeatured">, options?: ExamplaryRequestOptions): Promise<Response<"library.items.listFeatured">>;
5894
+ /**
5895
+ * Update library item
5896
+ *
5897
+ * Updates a library item. Only the publisher owner can update items in their publisher profile.
5898
+ *
5899
+ * API endpoint: `PATCH /library/items/{itemId}`
5900
+ */
5901
+ update(args: Args<"library.items.update">, options?: ExamplaryRequestOptions): Promise<Response<"library.items.update">>;
5902
+ /**
5903
+ * Delete library item
5904
+ *
5905
+ * Deletes a library item. Only the publisher owner can delete items from their publisher profile.
5906
+ *
5907
+ * API endpoint: `DELETE /library/items/{itemId}`
5908
+ */
5909
+ delete(itemId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.items.delete">>;
5910
+ delete(args: Args<"library.items.delete">, options?: ExamplaryRequestOptions): Promise<Response<"library.items.delete">>;
5911
+ }
5912
+ declare class Library {
5913
+ private readonly ctx;
5914
+ readonly publishers: LibraryPublishers;
5915
+ readonly items: LibraryItems;
5916
+ constructor(ctx: ClientContext);
5917
+ }
5918
+ declare class Oauth {
5919
+ private readonly ctx;
5920
+ constructor(ctx: ClientContext);
5921
+ /**
5922
+ * OAuth authorization endpoint
5923
+ *
5924
+ * Initiates OAuth authorization flow. Redirects to the frontend authorization UI where users can approve or deny access.
5925
+ *
5926
+ * API endpoint: `GET /oauth/authorize`
5927
+ */
5928
+ authorize(args: Args<"oauth.authorize">, options?: ExamplaryRequestOptions): Promise<Response<"oauth.authorize">>;
5929
+ /**
5930
+ * OAuth token endpoint
5931
+ *
5932
+ * Exchange authorization code for access token, or refresh an existing token.
5933
+ *
5934
+ * API endpoint: `POST /oauth/token`
5935
+ */
5936
+ token(args?: Args<"oauth.token">, options?: ExamplaryRequestOptions): Promise<Response<"oauth.token">>;
5937
+ }
5938
+ declare class EmbedSessions {
5939
+ private readonly ctx;
5940
+ constructor(ctx: ClientContext);
5941
+ /**
5942
+ * Create embed session
5943
+ *
5944
+ * Create a new embed session. This allows you to embed the exam generation flow into your own application.
5945
+ *
5946
+ * API endpoint: `POST /embed-sessions`
5947
+ */
5948
+ create(args?: Args<"embedSessions.create">, options?: ExamplaryRequestOptions): Promise<Response<"embedSessions.create">>;
5949
+ /**
5950
+ * Get embed session
5951
+ *
5952
+ * Retrieve an embed session by its ID.
5953
+ *
5954
+ * API endpoint: `GET /embed-sessions/{id}`
5955
+ */
5956
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"embedSessions.get">>;
5957
+ get(args: Args<"embedSessions.get">, options?: ExamplaryRequestOptions): Promise<Response<"embedSessions.get">>;
5958
+ /**
5959
+ * Revoke embed session
5960
+ *
5961
+ * Revoke access to an embed session by its ID.
5962
+ *
5963
+ * API endpoint: `DELETE /embed-sessions/{id}`
5964
+ */
5965
+ revoke(id: string, options?: ExamplaryRequestOptions): Promise<Response<"embedSessions.revoke">>;
5966
+ revoke(args: Args<"embedSessions.revoke">, options?: ExamplaryRequestOptions): Promise<Response<"embedSessions.revoke">>;
5967
+ }
5968
+ declare class Me {
5969
+ private readonly ctx;
5970
+ constructor(ctx: ClientContext);
5971
+ /**
5972
+ * Get me
5973
+ *
5974
+ * Get the current user's account details.
5975
+ *
5976
+ * API endpoint: `GET /me`
5977
+ */
5978
+ get(args?: Args<"me.get">, options?: ExamplaryRequestOptions): Promise<Response<"me.get">>;
5979
+ /**
5980
+ * Update me
5981
+ *
5982
+ * Update the current user's account details.
5983
+ *
5984
+ * API endpoint: `PATCH /me`
5985
+ */
5986
+ update(args?: Args<"me.update">, options?: ExamplaryRequestOptions): Promise<Response<"me.update">>;
5987
+ }
5988
+ declare class Media {
5989
+ private readonly ctx;
5990
+ constructor(ctx: ClientContext);
5991
+ /**
5992
+ * Get file upload URL
5993
+ *
5994
+ * Returns a signed URL for uploading a file, and a public URL for accessing it afterwards.
5995
+ *
5996
+ * API endpoint: `GET /media/upload`
5997
+ */
5998
+ upload(args?: Args<"media.upload">, options?: ExamplaryRequestOptions): Promise<Response<"media.upload">>;
5999
+ }
6000
+ declare class OrgCustomDomain {
6001
+ private readonly ctx;
6002
+ constructor(ctx: ClientContext);
6003
+ /**
6004
+ * Get custom domain configuration
6005
+ *
6006
+ * API endpoint: `GET /org/custom-domain`
6007
+ */
6008
+ get(args?: Args<"org.customDomain.get">, options?: ExamplaryRequestOptions): Promise<Response<"org.customDomain.get">>;
6009
+ /**
6010
+ * Update custom domain configuration
6011
+ *
6012
+ * API endpoint: `POST /org/custom-domain`
6013
+ */
6014
+ update(args?: Args<"org.customDomain.update">, options?: ExamplaryRequestOptions): Promise<Response<"org.customDomain.update">>;
6015
+ }
6016
+ declare class Org {
6017
+ private readonly ctx;
6018
+ readonly customDomain: OrgCustomDomain;
6019
+ constructor(ctx: ClientContext);
6020
+ /**
6021
+ * Get organization
6022
+ *
6023
+ * API endpoint: `GET /org`
6024
+ */
6025
+ get(args?: Args<"org.get">, options?: ExamplaryRequestOptions): Promise<Response<"org.get">>;
6026
+ /**
6027
+ * Update organization
6028
+ *
6029
+ * API endpoint: `PATCH /org`
6030
+ */
6031
+ update(args?: Args<"org.update">, options?: ExamplaryRequestOptions): Promise<Response<"org.update">>;
6032
+ /**
6033
+ * Delete organization
6034
+ *
6035
+ * API endpoint: `DELETE /org`
6036
+ */
6037
+ delete(args?: Args<"org.delete">, options?: ExamplaryRequestOptions): Promise<Response<"org.delete">>;
6038
+ }
6039
+ declare class Orgs {
6040
+ private readonly ctx;
6041
+ constructor(ctx: ClientContext);
6042
+ /**
6043
+ * List all organizations
6044
+ *
6045
+ * API endpoint: `GET /orgs`
6046
+ */
6047
+ list(args?: Args<"orgs.list">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.list">>;
6048
+ /**
6049
+ * Create a new organization
6050
+ *
6051
+ * Create a new workspace to collaborate with others on exams.
6052
+ *
6053
+ * API endpoint: `POST /orgs`
6054
+ */
6055
+ create(args?: Args<"orgs.create">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.create">>;
6056
+ }
6057
+ declare class ApiKeys {
6058
+ private readonly ctx;
6059
+ constructor(ctx: ClientContext);
6060
+ /**
6061
+ * Get API key
6062
+ *
6063
+ * Get the API key for the current org/user combination. Creates one if none exists.
6064
+ *
6065
+ * API endpoint: `GET /api-keys`
6066
+ */
6067
+ get(args?: Args<"apiKeys.get">, options?: ExamplaryRequestOptions): Promise<Response<"apiKeys.get">>;
6068
+ /**
6069
+ * Reset API key
6070
+ *
6071
+ * Invalidate old API keys for this org/user and create a new one.
6072
+ *
6073
+ * API endpoint: `POST /api-keys/reset`
6074
+ */
6075
+ reset(args?: Args<"apiKeys.reset">, options?: ExamplaryRequestOptions): Promise<Response<"apiKeys.reset">>;
6076
+ }
6077
+ declare class Attributes {
6078
+ private readonly ctx;
6079
+ constructor(ctx: ClientContext);
6080
+ /**
6081
+ * List attributes
6082
+ *
6083
+ * Get all custom attributes configured for the current workspace.
6084
+ *
6085
+ * API endpoint: `GET /attributes`
6086
+ */
6087
+ list(args?: Args<"attributes.list">, options?: ExamplaryRequestOptions): Promise<Response<"attributes.list">>;
6088
+ /**
6089
+ * Create attribute
6090
+ *
6091
+ * Create a new custom attribute in the current workspace.
6092
+ *
6093
+ * API endpoint: `POST /attributes`
6094
+ */
6095
+ create(args?: Args<"attributes.create">, options?: ExamplaryRequestOptions): Promise<Response<"attributes.create">>;
6096
+ /**
6097
+ * Reorder attributes
6098
+ *
6099
+ * Update the position of multiple attributes at once.
6100
+ *
6101
+ * API endpoint: `POST /attributes/reorder`
6102
+ */
6103
+ reorder(args?: Args<"attributes.reorder">, options?: ExamplaryRequestOptions): Promise<Response<"attributes.reorder">>;
6104
+ /**
6105
+ * Update attribute
6106
+ *
6107
+ * Update an existing attribute in the current workspace.
6108
+ *
6109
+ * API endpoint: `POST /attributes/{id}`
6110
+ */
6111
+ update(args: Args<"attributes.update">, options?: ExamplaryRequestOptions): Promise<Response<"attributes.update">>;
6112
+ /**
6113
+ * Delete attribute
6114
+ *
6115
+ * Delete a custom attribute from the current workspace. Default attributes cannot be deleted.
6116
+ *
6117
+ * API endpoint: `DELETE /attributes/{id}`
6118
+ */
6119
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"attributes.delete">>;
6120
+ delete(args: Args<"attributes.delete">, options?: ExamplaryRequestOptions): Promise<Response<"attributes.delete">>;
6121
+ }
6122
+ declare class Taxonomies {
6123
+ private readonly ctx;
6124
+ constructor(ctx: ClientContext);
6125
+ /**
6126
+ * Get taxonomies
6127
+ *
6128
+ * Get a list available taxonomies, including defaults and taxonomies created in the current workspace.
6129
+ *
6130
+ * API endpoint: `GET /taxonomies`
6131
+ */
6132
+ list(args?: Args<"taxonomies.list">, options?: ExamplaryRequestOptions): Promise<Response<"taxonomies.list">>;
6133
+ /**
6134
+ * Create taxonomy
6135
+ *
6136
+ * Save a new taxonomy in the current workspace.
6137
+ *
6138
+ * API endpoint: `POST /taxonomies`
6139
+ */
6140
+ create(args?: Args<"taxonomies.create">, options?: ExamplaryRequestOptions): Promise<Response<"taxonomies.create">>;
6141
+ /**
6142
+ * Update taxonomy
6143
+ *
6144
+ * Update an existing taxonomy in the current workspace.
6145
+ *
6146
+ * API endpoint: `POST /taxonomies/{id}`
6147
+ */
6148
+ update(args: Args<"taxonomies.update">, options?: ExamplaryRequestOptions): Promise<Response<"taxonomies.update">>;
6149
+ /**
6150
+ * Delete taxonomy
6151
+ *
6152
+ * Delete a taxonomy from the current workspace. This fails if there are any exams associated with the taxonomy.
6153
+ *
6154
+ * API endpoint: `DELETE /taxonomies/{id}`
6155
+ */
6156
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"taxonomies.delete">>;
6157
+ delete(args: Args<"taxonomies.delete">, options?: ExamplaryRequestOptions): Promise<Response<"taxonomies.delete">>;
6158
+ }
6159
+ declare class Permissions {
6160
+ private readonly ctx;
6161
+ constructor(ctx: ClientContext);
6162
+ /**
6163
+ * Autocomplete users and groups
6164
+ *
6165
+ * Search for users and groups to share with. Returns matches by name or email. Respects restricted group visibility.
6166
+ *
6167
+ * API endpoint: `GET /permissions/autocomplete`
6168
+ */
6169
+ autocomplete(args: Args<"permissions.autocomplete">, options?: ExamplaryRequestOptions): Promise<Response<"permissions.autocomplete">>;
6170
+ /**
6171
+ * Get sharing permissions
6172
+ *
6173
+ * Get a list of users, groups and orgs that have access to a specific resource.
6174
+ *
6175
+ * API endpoint: `GET /permissions/{resource}`
6176
+ */
6177
+ list(resource: string, options?: ExamplaryRequestOptions): Promise<Response<"permissions.list">>;
6178
+ list(args: Args<"permissions.list">, options?: ExamplaryRequestOptions): Promise<Response<"permissions.list">>;
6179
+ /**
6180
+ * Create permission
6181
+ *
6182
+ * Create a new permission for a specific resource, or update the role of an existing actor.
6183
+ *
6184
+ * API endpoint: `POST /permissions/{resource}`
6185
+ */
6186
+ assign(args: Args<"permissions.assign">, options?: ExamplaryRequestOptions): Promise<Response<"permissions.assign">>;
6187
+ /**
6188
+ * Get actor role
6189
+ *
6190
+ * Get the role of a specific actor for a specific resource.
6191
+ *
6192
+ * API endpoint: `GET /permissions/{resource}/{actor}`
6193
+ */
6194
+ getActorRole(args: Args<"permissions.getActorRole">, options?: ExamplaryRequestOptions): Promise<Response<"permissions.getActorRole">>;
6195
+ /**
6196
+ * Remove permission
6197
+ *
6198
+ * Remove a permission for a specific actor on a specific resource.
6199
+ *
6200
+ * API endpoint: `DELETE /permissions/{resource}/{actor}`
6201
+ */
6202
+ delete(args: Args<"permissions.delete">, options?: ExamplaryRequestOptions): Promise<Response<"permissions.delete">>;
6203
+ }
6204
+ declare class StudentLevels {
6205
+ private readonly ctx;
6206
+ constructor(ctx: ClientContext);
6207
+ /**
6208
+ * List available student levels
6209
+ *
6210
+ * Get a list of available default student levels.
6211
+ *
6212
+ * API endpoint: `GET /student-levels`
6213
+ */
6214
+ list(args?: Args<"studentLevels.list">, options?: ExamplaryRequestOptions): Promise<Response<"studentLevels.list">>;
6215
+ }
6216
+ declare class Users {
6217
+ private readonly ctx;
6218
+ constructor(ctx: ClientContext);
6219
+ /**
6220
+ * List users
6221
+ *
6222
+ * Get a list of all users in the workspace.
6223
+ *
6224
+ * API endpoint: `GET /users`
6225
+ */
6226
+ list(args?: Args<"users.list">, options?: ExamplaryRequestOptions): Promise<Response<"users.list">>;
6227
+ /**
6228
+ * Create user
6229
+ *
6230
+ * Create a new user in the workspace.
6231
+ *
6232
+ * API endpoint: `POST /users`
6233
+ */
6234
+ create(args?: Args<"users.create">, options?: ExamplaryRequestOptions): Promise<Response<"users.create">>;
6235
+ /**
6236
+ * Update user role
6237
+ *
6238
+ * Update a user's role within the workspace.
6239
+ *
6240
+ * API endpoint: `PATCH /users/{id}`
6241
+ */
6242
+ update(id: string, options?: ExamplaryRequestOptions): Promise<Response<"users.update">>;
6243
+ update(args: Args<"users.update">, options?: ExamplaryRequestOptions): Promise<Response<"users.update">>;
6244
+ /**
6245
+ * Delete user
6246
+ *
6247
+ * Delete a user from the workspace.
6248
+ *
6249
+ * API endpoint: `DELETE /users/{id}`
6250
+ */
6251
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"users.delete">>;
6252
+ delete(args: Args<"users.delete">, options?: ExamplaryRequestOptions): Promise<Response<"users.delete">>;
6253
+ }
6254
+ declare class ExamsSessions {
6255
+ private readonly ctx;
6256
+ constructor(ctx: ClientContext);
6257
+ /**
6258
+ * List exam sessions
6259
+ *
6260
+ * Get a list of all student sessions for an exam, representing a set of answers from a student.
6261
+ *
6262
+ * API endpoint: `GET /exams/{examId}/sessions`
6263
+ */
6264
+ list(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.list">>;
6265
+ list(args: Args<"exams.sessions.list">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.list">>;
6266
+ /**
6267
+ * Create session
6268
+ *
6269
+ * Manually create a session, possibly from uploaded data.
6270
+ *
6271
+ * API endpoint: `POST /exams/{examId}/sessions`
6272
+ */
6273
+ import(args: Args<"exams.sessions.import">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.import">>;
6274
+ /**
6275
+ * Get answers from scan
6276
+ *
6277
+ * Scan student answers from a document.
6278
+ *
6279
+ * API endpoint: `POST /exams/{examId}/sessions/scan`
6280
+ */
6281
+ scan(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
6282
+ scan(args: Args<"exams.sessions.scan">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
6283
+ /**
6284
+ * Scan document for student answers
6285
+ *
6286
+ * Start a background task to extract student answers from an uploaded PDF document.
6287
+ *
6288
+ * API endpoint: `POST /exams/{examId}/sessions/scan-document`
6289
+ */
6290
+ scanDocument(args: Args<"exams.sessions.scanDocument">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scanDocument">>;
6291
+ /**
6292
+ * Get exam session
6293
+ *
6294
+ * Get a single exam session by its ID, representing a set of answers from a student.
6295
+ *
6296
+ * API endpoint: `GET /exams/{examId}/sessions/{sessionId}`
6297
+ */
6298
+ get(args: Args<"exams.sessions.get">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.get">>;
6299
+ /**
6300
+ * Delete exam session
6301
+ *
6302
+ * Remove an exam session.
6303
+ *
6304
+ * API endpoint: `DELETE /exams/{examId}/sessions/{sessionId}`
6305
+ */
6306
+ delete(args: Args<"exams.sessions.delete">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.delete">>;
6307
+ /**
6308
+ * Provide feedback
6309
+ *
6310
+ * Set teacher feedback and/or a grade for a specific question in an exam session.
6311
+ *
6312
+ * API endpoint: `POST /exams/{examId}/sessions/{sessionId}/feedback`
6313
+ */
6314
+ saveFeedback(args: Args<"exams.sessions.saveFeedback">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.saveFeedback">>;
6315
+ /**
6316
+ * Provide overall feedback
6317
+ *
6318
+ * Set teacher feedback for the test as a whole in an exam session.
6319
+ *
6320
+ * API endpoint: `POST /exams/{examId}/sessions/{sessionId}/overall-feedback`
6321
+ */
6322
+ saveOverallFeedback(args: Args<"exams.sessions.saveOverallFeedback">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.saveOverallFeedback">>;
6323
+ /**
6324
+ * Generate overall feedback
6325
+ *
6326
+ * Generate feedback for the test as a whole in an exam session.
6327
+ *
6328
+ * API endpoint: `POST /exams/{examId}/sessions/{sessionId}/generate-overall-feedback`
6329
+ */
6330
+ generateOverallFeedback(args: Args<"exams.sessions.generateOverallFeedback">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.generateOverallFeedback">>;
6331
+ /**
6332
+ * Accept AI grading suggestions
6333
+ *
6334
+ * Accept all AI-generated grading suggestions for the exam session.
6335
+ *
6336
+ * API endpoint: `POST /exams/{examId}/sessions/{sessionId}/suggestions/accept-all`
6337
+ */
6338
+ acceptAllSuggestions(args: Args<"exams.sessions.acceptAllSuggestions">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.acceptAllSuggestions">>;
6339
+ /**
6340
+ * Accept single AI grading suggestion
6341
+ *
6342
+ * Accept a single AI-generated grading suggestion for the exam session.
6343
+ *
6344
+ * API endpoint: `POST /exams/{examId}/sessions/{sessionId}/suggestions/{questionId}/accept`
6345
+ */
6346
+ acceptSuggestion(args: Args<"exams.sessions.acceptSuggestion">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.acceptSuggestion">>;
6347
+ /**
6348
+ * Edit answer
6349
+ *
6350
+ * Edit a single answer in an exam session.
6351
+ *
6352
+ * API endpoint: `PATCH /exams/{examId}/sessions/{sessionId}/answers/{questionId}`
6353
+ */
6354
+ editAnswer(args: Args<"exams.sessions.editAnswer">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.editAnswer">>;
6355
+ }
6356
+ declare class ExamsQuestions {
6357
+ private readonly ctx;
6358
+ constructor(ctx: ClientContext);
6359
+ /**
6360
+ * Import questions
6361
+ *
6362
+ * Import questions into an exam from a file. Support Word, PDF, Moodle quiz XML and plain text files.
6363
+ *
6364
+ * API endpoint: `POST /exams/{examId}/questions/import`
6365
+ */
6366
+ import(args: Args<"exams.questions.import">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.import">>;
6367
+ /**
6368
+ * Generate question
6369
+ *
6370
+ * Generate a new question for the exam using an AI prompt.
6371
+ *
6372
+ * API endpoint: `POST /exams/{examId}/questions/generate`
6373
+ */
6374
+ generate(args: Args<"exams.questions.generate">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.generate">>;
6375
+ /**
6376
+ * Get question
6377
+ *
6378
+ * Retrieve a question by its ID.
6379
+ *
6380
+ * API endpoint: `GET /exams/{examId}/questions/{questionId}`
6381
+ */
6382
+ get(args: Args<"exams.questions.get">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.get">>;
6383
+ /**
6384
+ * Regenerate question
6385
+ *
6386
+ * Update a question using an AI prompt.
6387
+ *
6388
+ * API endpoint: `POST /exams/{examId}/questions/{questionId}/generate`
6389
+ */
6390
+ regenerate(args: Args<"exams.questions.regenerate">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.regenerate">>;
6391
+ }
6392
+ declare class ExamsExport {
6393
+ private readonly ctx;
6394
+ constructor(ctx: ClientContext);
6395
+ /**
6396
+ * Export QTI 3 package
6397
+ *
6398
+ * Export an exam as a QTI 3 ZIP package.
6399
+ *
6400
+ * API endpoint: `POST /exams/{examId}/export/qti3-zip`
6401
+ */
6402
+ qti3Zip(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.export.qti3Zip">>;
6403
+ qti3Zip(args: Args<"exams.export.qti3Zip">, options?: ExamplaryRequestOptions): Promise<Response<"exams.export.qti3Zip">>;
6404
+ /**
6405
+ * Export QTI 2.1 package
6406
+ *
6407
+ * Export an exam as a QTI 2.1 ZIP package.
6408
+ *
6409
+ * API endpoint: `POST /exams/{examId}/export/qti21-zip`
6410
+ */
6411
+ qti21Zip(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.export.qti21Zip">>;
6412
+ qti21Zip(args: Args<"exams.export.qti21Zip">, options?: ExamplaryRequestOptions): Promise<Response<"exams.export.qti21Zip">>;
6413
+ }
6414
+ declare class Exams {
6415
+ private readonly ctx;
6416
+ readonly sessions: ExamsSessions;
6417
+ readonly questions: ExamsQuestions;
6418
+ readonly export: ExamsExport;
6419
+ constructor(ctx: ClientContext);
6420
+ /**
6421
+ * List exams
6422
+ *
6423
+ * Get a list of all exams within your workspace.
6424
+ *
6425
+ * API endpoint: `GET /exams`
6426
+ */
6427
+ list(args?: Args<"exams.list">, options?: ExamplaryRequestOptions): Promise<Response<"exams.list">>;
6428
+ /**
6429
+ * Create exam
6430
+ *
6431
+ * Create a new exam within your workspace.
6432
+ *
6433
+ * API endpoint: `POST /exams`
6434
+ */
6435
+ create(args?: Args<"exams.create">, options?: ExamplaryRequestOptions): Promise<Response<"exams.create">>;
6436
+ /**
6437
+ * Import exam
6438
+ *
6439
+ * Create an exam by importing one or more source materials (e.g. an existing exam).
6440
+ *
6441
+ * API endpoint: `POST /exams/import`
6442
+ */
6443
+ import(args?: Args<"exams.import">, options?: ExamplaryRequestOptions): Promise<Response<"exams.import">>;
6444
+ /**
6445
+ * Get exam
6446
+ *
6447
+ * Get a single exam by its ID.
6448
+ *
6449
+ * API endpoint: `GET /exams/{id}`
6450
+ */
6451
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.get">>;
6452
+ get(args: Args<"exams.get">, options?: ExamplaryRequestOptions): Promise<Response<"exams.get">>;
6453
+ /**
6454
+ * Update exam
6455
+ *
6456
+ * Update an existing exam.
6457
+ *
6458
+ * API endpoint: `POST /exams/{id}`
6459
+ */
6460
+ update(id: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.update">>;
6461
+ update(args: Args<"exams.update">, options?: ExamplaryRequestOptions): Promise<Response<"exams.update">>;
6462
+ /**
6463
+ * Delete exam
6464
+ *
6465
+ * Delete the exam.
6466
+ *
6467
+ * API endpoint: `DELETE /exams/{id}`
6468
+ */
6469
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.delete">>;
6470
+ delete(args: Args<"exams.delete">, options?: ExamplaryRequestOptions): Promise<Response<"exams.delete">>;
6471
+ /**
6472
+ * Duplicate exam
6473
+ *
6474
+ * Duplicate the exam's questions and settings to a new exam.
6475
+ *
6476
+ * API endpoint: `POST /exams/{examId}/duplicate`
6477
+ */
6478
+ duplicate(args: Args<"exams.duplicate">, options?: ExamplaryRequestOptions): Promise<Response<"exams.duplicate">>;
6479
+ /**
6480
+ * Print exam
6481
+ *
6482
+ * Export an exam to a PDF file or Word document.
6483
+ *
6484
+ * API endpoint: `POST /exams/{examId}/print`
6485
+ */
6486
+ print(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.print">>;
6487
+ print(args: Args<"exams.print">, options?: ExamplaryRequestOptions): Promise<Response<"exams.print">>;
6488
+ /**
6489
+ * Generate exam
6490
+ *
6491
+ * Initiate a job to generate new questions for the exam using AI, based on the source materials and metadata specified.
6492
+ *
6493
+ * API endpoint: `POST /exams/{examId}/generate`
6494
+ */
6495
+ startGeneration(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.startGeneration">>;
6496
+ startGeneration(args: Args<"exams.startGeneration">, options?: ExamplaryRequestOptions): Promise<Response<"exams.startGeneration">>;
6497
+ /**
6498
+ * Cancel exam generation
6499
+ *
6500
+ * Cancel an ongoing job to generate new questions for the exam using AI.
6501
+ *
6502
+ * API endpoint: `POST /exams/{examId}/generate/cancel`
6503
+ */
6504
+ cancelGeneration(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.cancelGeneration">>;
6505
+ cancelGeneration(args: Args<"exams.cancelGeneration">, options?: ExamplaryRequestOptions): Promise<Response<"exams.cancelGeneration">>;
6506
+ /**
6507
+ * Get exam context suggestions
6508
+ *
6509
+ * Get AI-generated suggestions for context/instructions to include in the exam generation prompt, based on the source materials linked to the exam.
6510
+ *
6511
+ * API endpoint: `GET /exams/{examId}/context-suggestions`
6512
+ */
6513
+ getContextSuggestions(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.getContextSuggestions">>;
6514
+ getContextSuggestions(args: Args<"exams.getContextSuggestions">, options?: ExamplaryRequestOptions): Promise<Response<"exams.getContextSuggestions">>;
6515
+ }
6516
+ declare class PracticeSpacesStudents {
6517
+ private readonly ctx;
6518
+ constructor(ctx: ClientContext);
6519
+ /**
6520
+ * List practice space students
6521
+ *
6522
+ * Get a list of all students that practiced in a practice space.
6523
+ *
6524
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/students`
6525
+ */
6526
+ list(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.students.list">>;
6527
+ list(args: Args<"practiceSpaces.students.list">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.students.list">>;
6528
+ /**
6529
+ * Get practice space student
6530
+ *
6531
+ * Get details about a specific practice space student.
6532
+ *
6533
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/students/{studentId}`
6534
+ */
6535
+ get(args: Args<"practiceSpaces.students.get">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.students.get">>;
6536
+ }
6537
+ declare class PracticeSpacesSessions {
6538
+ private readonly ctx;
6539
+ constructor(ctx: ClientContext);
6540
+ /**
6541
+ * Create practice space session
6542
+ *
6543
+ * Create a new practice space session.
6544
+ *
6545
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/sessions`
6546
+ */
6547
+ create(args: Args<"practiceSpaces.sessions.create">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.sessions.create">>;
6548
+ /**
6549
+ * Get my practice space session
6550
+ *
6551
+ * Get the current user's past practice space session.
6552
+ *
6553
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/sessions/mine`
6554
+ */
6555
+ getMine(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.sessions.getMine">>;
6556
+ getMine(args: Args<"practiceSpaces.sessions.getMine">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.sessions.getMine">>;
6557
+ /**
6558
+ * Get practice space session
6559
+ *
6560
+ * Get a practice space session by its ID.
6561
+ *
6562
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/sessions/{sessionId}`
6563
+ */
6564
+ get(args: Args<"practiceSpaces.sessions.get">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.sessions.get">>;
6565
+ /**
6566
+ * Save answer for a practice space session
6567
+ *
6568
+ * Save an answer for a specific question in a practice space session.
6569
+ *
6570
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/sessions/{sessionId}/answers/{questionId}`
6571
+ */
6572
+ saveAnswer(args: Args<"practiceSpaces.sessions.saveAnswer">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.sessions.saveAnswer">>;
6573
+ }
6574
+ declare class PracticeSpaces {
6575
+ private readonly ctx;
6576
+ readonly students: PracticeSpacesStudents;
6577
+ readonly sessions: PracticeSpacesSessions;
6578
+ constructor(ctx: ClientContext);
6579
+ /**
6580
+ * List practice spaces
6581
+ *
6582
+ * Get a list of all practice spaces you have access to in this workspace.
6583
+ *
6584
+ * API endpoint: `GET /practice-spaces`
6585
+ */
6586
+ list(args?: Args<"practiceSpaces.list">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.list">>;
6587
+ /**
6588
+ * Create practice space
6589
+ *
6590
+ * Create a new practice space within your workspace.
6591
+ *
6592
+ * API endpoint: `POST /practice-spaces`
6593
+ */
6594
+ create(args?: Args<"practiceSpaces.create">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.create">>;
6595
+ /**
6596
+ * Get practice space
6597
+ *
6598
+ * Get a single practice space by its ID.
6599
+ *
6600
+ * API endpoint: `GET /practice-spaces/{id}`
6601
+ */
6602
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.get">>;
6603
+ get(args: Args<"practiceSpaces.get">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.get">>;
6604
+ /**
6605
+ * Update practice space
6606
+ *
6607
+ * Update an existing practice space.
6608
+ *
6609
+ * API endpoint: `PATCH /practice-spaces/{id}`
6610
+ */
6611
+ update(args: Args<"practiceSpaces.update">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.update">>;
6612
+ /**
6613
+ * Delete practice space
6614
+ *
6615
+ * Delete the practice space.
6616
+ *
6617
+ * API endpoint: `DELETE /practice-spaces/{id}`
6618
+ */
6619
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.delete">>;
6620
+ delete(args: Args<"practiceSpaces.delete">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.delete">>;
6621
+ /**
6622
+ * Duplicate practice space
6623
+ *
6624
+ * Duplicate the practice space's settings and topics to a new practice space.
6625
+ *
6626
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/duplicate`
6627
+ */
6628
+ duplicate(args: Args<"practiceSpaces.duplicate">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.duplicate">>;
6629
+ /**
6630
+ * Generate practice space topics
6631
+ *
6632
+ * Start generating mastery topics for a practice space.
6633
+ *
6634
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/generate-topics`
6635
+ */
6636
+ generateTopics(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.generateTopics">>;
6637
+ generateTopics(args: Args<"practiceSpaces.generateTopics">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.generateTopics">>;
6638
+ /**
6639
+ * Cancel practice space topic generation
6640
+ *
6641
+ * Cancel an in-progress mastery topic generation job.
6642
+ *
6643
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/cancel-generate-topics`
6644
+ */
6645
+ cancelGenerateTopics(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.cancelGenerateTopics">>;
6646
+ cancelGenerateTopics(args: Args<"practiceSpaces.cancelGenerateTopics">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.cancelGenerateTopics">>;
6647
+ /**
6648
+ * Preview top practice space questions
6649
+ *
6650
+ * Get a preview of the top practice space questions by quality score.
6651
+ *
6652
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/questions-preview`
6653
+ */
6654
+ questionsPreview(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.questionsPreview">>;
6655
+ questionsPreview(args: Args<"practiceSpaces.questionsPreview">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.questionsPreview">>;
6656
+ /**
6657
+ * Get practice space progress
6658
+ *
6659
+ * Get the progress of a single practice space by its ID.
6660
+ *
6661
+ * API endpoint: `GET /practice-spaces/{practiceSpaceId}/progress`
6662
+ */
6663
+ getProgress(practiceSpaceId: string, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.getProgress">>;
6664
+ getProgress(args: Args<"practiceSpaces.getProgress">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.getProgress">>;
6665
+ /**
6666
+ * Generate practice space topic feedback
6667
+ *
6668
+ * Get feedback for a specific topic in a practice space.
6669
+ *
6670
+ * API endpoint: `POST /practice-spaces/{practiceSpaceId}/progress/topic-feedback`
6671
+ */
6672
+ generateTopicFeedback(args: Args<"practiceSpaces.generateTopicFeedback">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.generateTopicFeedback">>;
6673
+ }
6674
+ declare class SourceMaterials {
6675
+ private readonly ctx;
6676
+ constructor(ctx: ClientContext);
6677
+ /**
6678
+ * List source materials in org
6679
+ *
6680
+ * Returns a list of source materials for the current organization.
6681
+ *
6682
+ * API endpoint: `GET /source-materials`
6683
+ */
6684
+ list(args?: Args<"sourceMaterials.list">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.list">>;
6685
+ /**
6686
+ * Add source material
6687
+ *
6688
+ * Add a source material and start processing it for later use in an exam.
6689
+ *
6690
+ * API endpoint: `POST /source-materials`
6691
+ */
6692
+ create(args?: Args<"sourceMaterials.create">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.create">>;
6693
+ /**
6694
+ * Get source material
6695
+ *
6696
+ * Returns the current status and facts extracted from the specified source material.
6697
+ *
6698
+ * API endpoint: `GET /source-materials/{id}`
6699
+ */
6700
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.get">>;
6701
+ get(args: Args<"sourceMaterials.get">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.get">>;
6702
+ /**
6703
+ * Update source material
6704
+ *
6705
+ * Updates the specified source material.
6706
+ *
6707
+ * API endpoint: `PATCH /source-materials/{id}`
6708
+ */
6709
+ update(args: Args<"sourceMaterials.update">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.update">>;
6710
+ /**
6711
+ * Delete source material
6712
+ *
6713
+ * Deletes the specified source material.
6714
+ *
6715
+ * API endpoint: `DELETE /source-materials/{id}`
6716
+ */
6717
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.delete">>;
6718
+ delete(args: Args<"sourceMaterials.delete">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.delete">>;
6719
+ /**
6720
+ * Create a source material slice
6721
+ *
6722
+ * Create a new source material based on a specific page range of an existing source material.
6723
+ *
6724
+ * API endpoint: `POST /source-materials/{sourceMaterialId}/slice`
6725
+ */
6726
+ slice(args: Args<"sourceMaterials.slice">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.slice">>;
6727
+ }
6728
+ declare class Folders {
6729
+ private readonly ctx;
6730
+ constructor(ctx: ClientContext);
6731
+ /**
6732
+ * Get folders
6733
+ *
6734
+ * Get a list of folders for exam organisation that exist within the current workspace.
6735
+ *
6736
+ * API endpoint: `GET /folders`
6737
+ */
6738
+ list(args?: Args<"folders.list">, options?: ExamplaryRequestOptions): Promise<Response<"folders.list">>;
6739
+ /**
6740
+ * Create folder
6741
+ *
6742
+ * Create a new folder in the current workspace.
6743
+ *
6744
+ * API endpoint: `POST /folders`
6745
+ */
6746
+ create(args?: Args<"folders.create">, options?: ExamplaryRequestOptions): Promise<Response<"folders.create">>;
6747
+ /**
6748
+ * Update folder
6749
+ *
6750
+ * Update an existing folder in the current workspace.
6751
+ *
6752
+ * API endpoint: `POST /folders/{id}`
6753
+ */
6754
+ update(args: Args<"folders.update">, options?: ExamplaryRequestOptions): Promise<Response<"folders.update">>;
6755
+ /**
6756
+ * Delete folder
6757
+ *
6758
+ * Delete a folder from the current workspace. If there are any exams in the folder, they will be moved out of the folder.
6759
+ *
6760
+ * API endpoint: `DELETE /folders/{id}`
6761
+ */
6762
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"folders.delete">>;
6763
+ delete(args: Args<"folders.delete">, options?: ExamplaryRequestOptions): Promise<Response<"folders.delete">>;
6764
+ }
6765
+ declare class Groups {
6766
+ private readonly ctx;
6767
+ constructor(ctx: ClientContext);
6768
+ /**
6769
+ * List groups
6770
+ *
6771
+ * List all groups in the organization. When restricted group visibility is enabled, only returns groups the user belongs to.
6772
+ *
6773
+ * API endpoint: `GET /groups`
6774
+ */
6775
+ list(args?: Args<"groups.list">, options?: ExamplaryRequestOptions): Promise<Response<"groups.list">>;
6776
+ /**
6777
+ * Create group
6778
+ *
6779
+ * Create a new group. Requires admin or owner org role.
6780
+ *
6781
+ * API endpoint: `POST /groups`
6782
+ */
6783
+ create(args?: Args<"groups.create">, options?: ExamplaryRequestOptions): Promise<Response<"groups.create">>;
6784
+ /**
6785
+ * Rename group
6786
+ *
6787
+ * Rename a group. Requires group manager/owner role or org admin/owner.
6788
+ *
6789
+ * API endpoint: `PATCH /groups/{id}`
6790
+ */
6791
+ update(args: Args<"groups.update">, options?: ExamplaryRequestOptions): Promise<Response<"groups.update">>;
6792
+ /**
6793
+ * Delete group
6794
+ *
6795
+ * Delete a group and revoke all associated permissions. Requires group manager/owner role or org admin/owner.
6796
+ *
6797
+ * API endpoint: `DELETE /groups/{id}`
6798
+ */
6799
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"groups.delete">>;
6800
+ delete(args: Args<"groups.delete">, options?: ExamplaryRequestOptions): Promise<Response<"groups.delete">>;
6801
+ /**
6802
+ * List group members
6803
+ *
6804
+ * List all members of a group with resolved user info. Respects restricted group visibility.
6805
+ *
6806
+ * API endpoint: `GET /groups/{groupId}/members`
6807
+ */
6808
+ listMembers(groupId: string, options?: ExamplaryRequestOptions): Promise<Response<"groups.listMembers">>;
6809
+ listMembers(args: Args<"groups.listMembers">, options?: ExamplaryRequestOptions): Promise<Response<"groups.listMembers">>;
6810
+ /**
6811
+ * Add group member
6812
+ *
6813
+ * Add a member to a group. Requires group manager/owner role or org admin/owner.
6814
+ *
6815
+ * API endpoint: `POST /groups/{groupId}/members`
6816
+ */
6817
+ addMember(args: Args<"groups.addMember">, options?: ExamplaryRequestOptions): Promise<Response<"groups.addMember">>;
6818
+ /**
6819
+ * Change member role
6820
+ *
6821
+ * Change a member's role in the group. Requires group manager/owner role or org admin/owner.
6822
+ *
6823
+ * API endpoint: `PATCH /groups/{groupId}/members/{userId}`
6824
+ */
6825
+ updateMember(args: Args<"groups.updateMember">, options?: ExamplaryRequestOptions): Promise<Response<"groups.updateMember">>;
6826
+ /**
6827
+ * Remove group member
6828
+ *
6829
+ * Remove a member from the group. Requires group manager/owner role or org admin/owner. Cannot remove the owner.
6830
+ *
6831
+ * API endpoint: `DELETE /groups/{groupId}/members/{userId}`
6832
+ */
6833
+ removeMember(args: Args<"groups.removeMember">, options?: ExamplaryRequestOptions): Promise<Response<"groups.removeMember">>;
6834
+ }
6835
+ declare class QuestionBank {
6836
+ private readonly ctx;
6837
+ constructor(ctx: ClientContext);
6838
+ /**
6839
+ * Get question bank items
6840
+ *
6841
+ * Get a list of question bank items that exist within the current workspace.
6842
+ *
6843
+ * API endpoint: `GET /question-bank`
6844
+ */
6845
+ list(args?: Args<"questionBank.list">, options?: ExamplaryRequestOptions): Promise<Response<"questionBank.list">>;
6846
+ /**
6847
+ * Add question to question bank
6848
+ *
6849
+ * Add a question to the question bank in the current workspace.
6850
+ *
6851
+ * API endpoint: `POST /question-bank`
6852
+ */
6853
+ create(args?: Args<"questionBank.create">, options?: ExamplaryRequestOptions): Promise<Response<"questionBank.create">>;
6854
+ /**
6855
+ * Update question bank item
6856
+ *
6857
+ * Update an existing question bank item in the current workspace.
6858
+ *
6859
+ * API endpoint: `PATCH /question-bank/{id}`
6860
+ */
6861
+ update(args: Args<"questionBank.update">, options?: ExamplaryRequestOptions): Promise<Response<"questionBank.update">>;
6862
+ /**
6863
+ * Delete question bank item
6864
+ *
6865
+ * Delete a question bank item from the current workspace.
6866
+ *
6867
+ * API endpoint: `DELETE /question-bank/{id}`
6868
+ */
6869
+ delete(id: string, options?: ExamplaryRequestOptions): Promise<Response<"questionBank.delete">>;
6870
+ delete(args: Args<"questionBank.delete">, options?: ExamplaryRequestOptions): Promise<Response<"questionBank.delete">>;
6871
+ }
6872
+ declare class Jobs {
6873
+ private readonly ctx;
6874
+ constructor(ctx: ClientContext);
6875
+ /**
6876
+ * Get job status
6877
+ *
6878
+ * Poll the status of a background job.
6879
+ *
6880
+ * API endpoint: `GET /jobs/{id}`
6881
+ */
6882
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"jobs.get">>;
6883
+ get(args: Args<"jobs.get">, options?: ExamplaryRequestOptions): Promise<Response<"jobs.get">>;
6884
+ /**
6885
+ * Cancel a job
6886
+ *
6887
+ * Cancel a background job.
6888
+ *
6889
+ * API endpoint: `DELETE /jobs/{id}`
6890
+ */
6891
+ cancel(id: string, options?: ExamplaryRequestOptions): Promise<Response<"jobs.cancel">>;
6892
+ cancel(args: Args<"jobs.cancel">, options?: ExamplaryRequestOptions): Promise<Response<"jobs.cancel">>;
6893
+ }
6894
+ declare class Examplary {
6895
+ private readonly ctx;
6896
+ readonly questionTypes: QuestionTypes;
6897
+ readonly library: Library;
6898
+ readonly oauth: Oauth;
6899
+ readonly embedSessions: EmbedSessions;
6900
+ readonly me: Me;
6901
+ readonly media: Media;
6902
+ readonly org: Org;
6903
+ readonly orgs: Orgs;
6904
+ readonly apiKeys: ApiKeys;
6905
+ readonly attributes: Attributes;
6906
+ readonly taxonomies: Taxonomies;
6907
+ readonly permissions: Permissions;
6908
+ readonly studentLevels: StudentLevels;
6909
+ readonly users: Users;
6910
+ readonly exams: Exams;
6911
+ readonly practiceSpaces: PracticeSpaces;
6912
+ readonly sourceMaterials: SourceMaterials;
6913
+ readonly folders: Folders;
6914
+ readonly groups: Groups;
6915
+ readonly questionBank: QuestionBank;
6916
+ readonly jobs: Jobs;
6917
+ constructor(options: ExamplaryClientOptions);
6918
+ /**
6919
+ * Get rubrics
6920
+ *
6921
+ * Get a list of rubrics that exist within the current workspace.
6922
+ *
6923
+ * API endpoint: `GET /rubrics`
6924
+ */
6925
+ getRubrics(args?: Args<"getRubrics">, options?: ExamplaryRequestOptions): Promise<Response<"getRubrics">>;
6926
+ /**
6927
+ * Save rubric
6928
+ *
6929
+ * Add a rubric to the current workspace.
6930
+ *
6931
+ * API endpoint: `POST /rubrics`
6932
+ */
6933
+ postRubrics(args?: Args<"postRubrics">, options?: ExamplaryRequestOptions): Promise<Response<"postRubrics">>;
6934
+ /**
6935
+ * Generate rubric
6936
+ *
6937
+ * Start a background job to generate a rubric using AI.
6938
+ *
6939
+ * API endpoint: `POST /rubrics/generate`
6940
+ */
6941
+ postRubricsGenerate(args?: Args<"postRubricsGenerate">, options?: ExamplaryRequestOptions): Promise<Response<"postRubricsGenerate">>;
6942
+ /**
6943
+ * Update rubric
6944
+ *
6945
+ * Update an existing rubric in the current workspace.
6946
+ *
6947
+ * API endpoint: `PATCH /rubrics/{id}`
6948
+ */
6949
+ patchRubricsId(args: Args<"patchRubrics:id">, options?: ExamplaryRequestOptions): Promise<Response<"patchRubrics:id">>;
6950
+ /**
6951
+ * Delete rubric
6952
+ *
6953
+ * Delete a rubric from the current workspace.
6954
+ *
6955
+ * API endpoint: `DELETE /rubrics/{id}`
6956
+ */
6957
+ deleteRubricsId(id: string, options?: ExamplaryRequestOptions): Promise<Response<"deleteRubrics:id">>;
6958
+ deleteRubricsId(args: Args<"deleteRubrics:id">, options?: ExamplaryRequestOptions): Promise<Response<"deleteRubrics:id">>;
6959
+ }
6960
+
6961
+ declare class ExamplaryError<T = unknown, D = any> extends AxiosError<T, D> {
6962
+ originalMessage?: string;
6963
+ constructor(message?: string, code?: string, config?: InternalAxiosRequestConfig<D>, request?: any, response?: AxiosResponse<T, D>);
6964
+ static fromAxiosError(error: AxiosError): ExamplaryError;
6965
+ }
6966
+
6967
+ export { type Args, Examplary, type ExamplaryClientOptions, ExamplaryError, type ExamplaryRequestOptions, type Response, type components, type operations, type paths };