omnivore/packages/api/src/services/integrations/integration.ts
2024-03-14 21:36:47 +08:00

30 lines
645 B
TypeScript

import { LibraryItem, LibraryItemState } from '../../entity/library_item'
export interface RetrievedData {
url: string
labels?: string[]
state?: LibraryItemState
}
export interface RetrievedResult {
data: RetrievedData[]
hasMore?: boolean
since?: number // unix timestamp in milliseconds
}
export interface RetrieveRequest {
token: string
since?: number // unix timestamp in milliseconds
count?: number
offset?: number
}
export interface IntegrationClient {
name: string
token: string
accessToken(): Promise<string | null>
auth(state: string): Promise<string>
export(items: LibraryItem[]): Promise<boolean>
}