| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 | import { AppMode } from './app'export type DataSet = {  id: string  name: string  icon: string  icon_background: string  description: string  permission: 'only_me' | 'all_team_members'  data_source_type: 'upload_file'  indexing_technique: 'high_quality' | 'economy'  created_by: string  updated_by: string  updated_at: number  app_count: number  document_count: number  word_count: number}export type File = {  id: string  name: string  size: number  extension: string  mime_type: string  created_by: string  created_at: number}export type DataSetListResponse = {  data: DataSet[]  has_more: boolean  limit: number  page: number  total: number}export type IndexingEstimateResponse = {  tokens: number  total_price: number  currency: string  total_segments: number  preview: string[]}export interface FileIndexingEstimateResponse extends IndexingEstimateResponse {  total_nodes: number}export type IndexingStatusResponse = {  id: string  indexing_status: DocumentIndexingStatus  processing_started_at: number  parsing_completed_at: number  cleaning_completed_at: number  splitting_completed_at: number  completed_at: any  paused_at: any  error: any  stopped_at: any  completed_segments: number  total_segments: number}export type ProcessMode = 'automatic' | 'custom'export type ProcessRuleResponse = {  mode: ProcessMode  rules: Rules}export type Rules = {  pre_processing_rules: PreProcessingRule[]  segmentation: Segmentation}export type PreProcessingRule = {  id: string  enabled: boolean}export type Segmentation = {  separator: string  max_tokens: number}export const DocumentIndexingStatusList = [  'waiting',  'parsing',  'cleaning',  'splitting',  'indexing',  'paused',  'error',  'completed',] as constexport type DocumentIndexingStatus = typeof DocumentIndexingStatusList[number]export const DisplayStatusList = [  "queuing",  "indexing",  "paused",  "error",  "available",  "enabled",  "disabled",  "archived",] as const;export type DocumentDisplayStatus = typeof DisplayStatusList[number];export type DataSourceInfo = {  upload_file: {    id: string    name: string    size: number    mime_type: string    created_at: number    created_by: string    extension: string  }}export type InitialDocumentDetail = {  id: string  position: number  dataset_id: string  data_source_type: 'upload_file'  data_source_info: DataSourceInfo  dataset_process_rule_id: string  name: string  created_from: 'api' | 'web'  created_by: string  created_at: number  indexing_status: DocumentIndexingStatus  display_status: DocumentDisplayStatus}export type SimpleDocumentDetail = InitialDocumentDetail & {  enabled: boolean  word_count: number  error?: string | null  archived: boolean  updated_at: number  hit_count: number  dataset_process_rule_id?: string}export type DocumentListResponse = {  data: SimpleDocumentDetail[]  has_more: boolean  total: number  page: number  limit: number}export type CreateDocumentReq = {  original_document_id?: string  indexing_technique?: string;  name: string  data_source: DataSource  process_rule: ProcessRule}export type DataSource = {  type: string  info: string // upload_file_id  name: string}export type ProcessRule = {  mode: string  rules: Rules}export type createDocumentResponse = {  dataset?: DataSet  document: InitialDocumentDetail}export type FullDocumentDetail = SimpleDocumentDetail & {  batch: string  created_api_request_id: string  processing_started_at: number  parsing_completed_at: number  cleaning_completed_at: number  splitting_completed_at: number  tokens: number  indexing_latency: number  completed_at: number  paused_by: string  paused_at: number  stopped_at: number  indexing_status: string  disabled_at: number  disabled_by: string  archived_reason: 'rule_modified' | 're_upload'  archived_by: string  archived_at: number  doc_type?: DocType | null  doc_metadata?: DocMetadata | null  segment_count: number  [key: string]: any}export type DocMetadata = {  title: string  language: string  author: string  publisher: string  publicationDate: string  ISBN: string  category: string  [key: string]: string}export const CUSTOMIZABLE_DOC_TYPES = [  "book",  "web_page",  "paper",  "social_media_post",  "personal_document",  "business_document",  "im_chat_log",] as const;export const FIXED_DOC_TYPES = ["synced_from_github", "synced_from_notion", "wikipedia_entry"] as const;export type CustomizableDocType = typeof CUSTOMIZABLE_DOC_TYPES[number];export type FixedDocType = typeof FIXED_DOC_TYPES[number];export type DocType = CustomizableDocType | FixedDocType;export type DocumentDetailResponse = FullDocumentDetailexport const SEGMENT_STATUS_LIST = ['waiting', 'completed', 'error', 'indexing']export type SegmentStatus = typeof SEGMENT_STATUS_LIST[number]export type SegmentsQuery = {  last_id?: string  limit: number  // status?: SegmentStatus  hit_count_gte?: number  keyword?: string  enabled?: boolean}export type SegmentDetailModel = {  id: string  position: number  document_id: string  content: string  word_count: number  tokens: number  keywords: string[]  index_node_id: string  index_node_hash: string  hit_count: number  enabled: boolean  disabled_at: number  disabled_by: string  status: SegmentStatus  created_by: string  created_at: number  indexing_at: number  completed_at: number  error: string | null  stopped_at: number}export type SegmentsResponse = {  data: SegmentDetailModel[]  has_more: boolean  limit: number  total: number}export type HitTestingRecord = {  id: string  content: string  source: 'app' | 'hit_testing' | 'plugin'  source_app_id: string  created_by_role: 'account' | 'end_user'  created_by: string  created_at: number}export type HitTesting = {  segment: Segment  score: number  tsne_position: TsnePosition}export type Segment = {  id: string  document: Document  content: string  position: number  word_count: number  tokens: number  keywords: string[]  hit_count: number  index_node_hash: string}export type Document = {  id: string  data_source_type: string  name: string  doc_type: DocType}export type HitTestingRecordsResponse = {  data: HitTestingRecord[]  has_more: boolean  limit: number  total: number  page: number}export type TsnePosition = {  x: number  y: number}export type HitTestingResponse = {  query: {    content: string    tsne_position: TsnePosition  }  records: Array<HitTesting>}export type RelatedApp = {  id: string  name: string  mode: AppMode  icon: string  icon_background: string}export type RelatedAppResponse = {  data: Array<RelatedApp>  total: number}
 |