import { OrderedMap, Map } from "immutable"; import { BasicUpdater, Updater } from "../fun/domains/updater/state"; import { AsyncState } from "../async/state"; import { Unit } from "../fun/domains/unit/state"; import { BasicFun } from "../fun/state"; import { Guid, PredicateValue, ValueOrErrors, ValueRecord } from "../../main"; export type ValueStreamingStatus = "reload" | "loadMore" | false; export type ValueStreamPosition = { nextStart: number; chunkSize: number; chunkIndex: ValueChunkIndex; shouldLoad: ValueStreamingStatus; lastModifiedTime: number; disallowParamsChange: boolean; }; export declare const ValueStreamPosition: { Default: (initialChunkSize: number, shouldLoad?: ValueStreamingStatus) => ValueStreamPosition; Updaters: { Template: { changeChunkSize: (chunkSize: number) => Updater; reload: () => Updater; loadMore: () => Updater; initLoad: () => Updater; }; Core: { nextStart: import("../../main").Widening; chunkSize: import("../../main").Widening; chunkIndex: import("../../main").Widening; shouldLoad: import("../../main").Widening; lastModifiedTime: import("../../main").Widening; disallowParamsChange: import("../../main").Widening; }; Coroutine: {}; }; }; export type ValueChunk = { hasMoreValues: boolean; data: OrderedMap; from: number; to: number; }; export declare const ValueChunk: { Default: (hasMoreValues: boolean, data: OrderedMap, from: number, to: number) => ValueChunk; Updaters: { Core: { to: import("../../main").Widening; from: import("../../main").Widening; data: import("../../main").Widening; hasMoreValues: import("../../main").Widening; }; Template: { updateValue: (valueId: Guid, valueUpdater: BasicUpdater) => Updater; updateValueItem: (valueId: Guid, itemId: Guid, valueUpdater: BasicUpdater) => Updater; }; }; }; export type ValueChunkIndex = number; export type StateChunkIndex = number; export type StateChunkValue = Map; export declare const StateChunkItem: { Default: (state: Record) => StateChunkValue; }; export type StateChunk = Map; export declare const StateChunk: { Default: (state: Record) => StateChunk; }; export type ValueInfiniteStreamState = { loadingMore: AsyncState; loadedElements: OrderedMap; position: ValueStreamPosition; getChunk: BasicFun<[ValueStreamPosition], Promise>; }; export declare const ValueInfiniteStreamState: { Default: (initialChunkSize: number, getChunk: ValueInfiniteStreamState["getChunk"], shouldLoad?: ValueStreamingStatus) => ValueInfiniteStreamState; Operations: { shouldCoroutineRun: (current: ValueInfiniteStreamState) => boolean; loadNextPage: (current: ValueInfiniteStreamState) => boolean; getChunkIndexForValue: (current: ValueInfiniteStreamState, valueId: Guid) => ValueOrErrors; }; Updaters: { Coroutine: { addLoadedChunk: (chunkIndex: number, newChunk: ValueChunk) => Updater; }; Core: { whenNotAlreadyLoading: (_: BasicUpdater) => Updater; position: (positionUpdater: Updater) => Updater; clearLoadedElements: () => Updater; loadedElements: import("../../main").Widening; loadingMore: import("../../main").Widening; getChunk: import("../../main").Widening; }; Template: { reload: (getChunk: ValueInfiniteStreamState["getChunk"]) => Updater; loadMore: () => Updater; initLoad: () => Updater; updateChunkValue: (chunkIndex: number, chunkValueKey: Guid) => (valueUpdater: BasicUpdater) => Updater; updateChunkValueItem: (chunkIndex: number, chunkValueKey: Guid, chunkValueItemKey: Guid) => (valueUpdater: BasicUpdater) => Updater; }; }; }; export type ValueInfiniteStreamReadonlyContext = Unit; export type ValueInfiniteStreamWritableState = ValueInfiniteStreamState; //# sourceMappingURL=state.d.ts.map