import { DocHandle } from "./DocHandle.js" export type FindProgressState = | "loading" | "ready" | "failed" | "aborted" | "unavailable" interface FindProgressBase { state: FindProgressState handle: DocHandle } interface FindProgressLoading extends FindProgressBase { state: "loading" progress: number } interface FindProgressReady extends FindProgressBase { state: "ready" } interface FindProgressFailed extends FindProgressBase { state: "failed" error: Error } interface FindProgressUnavailable extends FindProgressBase { state: "unavailable" } interface FindProgressAborted extends FindProgressBase { state: "aborted" } export type FindProgress = | FindProgressLoading | FindProgressReady | FindProgressFailed | FindProgressUnavailable | FindProgressAborted export type FindProgressWithMethods = FindProgress & { next: () => Promise> // TODO: i don't like this allowableStates untilReady: (allowableStates: string[]) => Promise> }