import type { MarkSet } from "@tooee/marks"; import type { AnyContent, ContentChunk } from "./types.js"; type ContentProviderResult = AnyContent | Promise | AsyncIterable; export type ContentLoaderStatus = "idle" | "loading" | "streaming" | "ready" | "error"; export interface ContentLoaderContext { status: ContentLoaderStatus; requestId: number; loadSeq: number; content: AnyContent | null; error: string | null; providerMarks: MarkSet[]; title: string | undefined; } interface ContentLoaderEventPayloads { loadStarted: { marks: MarkSet[]; title?: string; }; streamStarted: { requestId: number; format: string; }; chunkReceived: { requestId: number; chunk: ContentChunk; }; loaded: { requestId: number; content: AnyContent; }; streamEnded: { requestId: number; }; loadFailed: { requestId: number; error: string; }; loadCancelled: { requestId: number; }; reloadRequested: Record; } export type ContentLoaderEvents = { [Event in keyof ContentLoaderEventPayloads]: ContentLoaderEventPayloads[Event]; }; export declare const isAsyncIterable: (value: ContentProviderResult) => value is AsyncIterable; export declare const createEmptyContent: (format: string, title?: string) => AnyContent; export declare const applyContentChunk: (current: AnyContent | null, chunk: ContentChunk, title?: string) => AnyContent; export declare const normalizeError: (cause: unknown) => string; export declare const createContentLoaderStore: () => import("@xstate/store").Store; export declare const selectContent: (ctx: ContentLoaderContext) => AnyContent | null; export declare const selectStatus: (ctx: ContentLoaderContext) => ContentLoaderStatus; export declare const selectStreaming: (ctx: ContentLoaderContext) => boolean; export declare const selectError: (ctx: ContentLoaderContext) => string | null; export declare const selectProviderMarks: (ctx: ContentLoaderContext) => MarkSet[]; export declare const selectLoadSeq: (ctx: ContentLoaderContext) => number; export {}; //# sourceMappingURL=content-loader-store.d.ts.map