import type { Osdk, PageResult } from "@osdk/api";
import type { Observable, Subscription } from "rxjs";
import type { ObjectSetPayload } from "../../ObjectSetPayload.js";
import type { Status } from "../../ObservableClient/common.js";
import { BaseListQuery } from "../base-list/BaseListQuery.js";
import type { BatchContext } from "../BatchContext.js";
import type { Canonical } from "../Canonical.js";
import type { Changes } from "../Changes.js";
import type { Entry } from "../Layer.js";
import type { Store } from "../Store.js";
import type { SubjectPayload } from "../SubjectPayload.js";
import type { ObjectSetCacheKey, ObjectSetOperations } from "./ObjectSetCacheKey.js";
import type { ObjectSetQueryOptions } from "./ObjectSetQueryOptions.js";
export declare class ObjectSetQuery extends BaseListQuery<ObjectSetCacheKey, ObjectSetPayload, ObjectSetQueryOptions> {
	#private;
	constructor(store: Store, subject: Observable<SubjectPayload<ObjectSetCacheKey>>, baseObjectSetWire: string, operations: Canonical<ObjectSetOperations>, cacheKey: ObjectSetCacheKey, opts: ObjectSetQueryOptions);
	/**
	* Register changes to the cache specific to ObjectSetQuery
	*/
	protected registerCacheChanges(batch: BatchContext): void;
	/**
	* Implements fetchPageData from BaseListQuery template method
	* Fetches a page of data from the composed ObjectSet
	*/
	protected fetchPageData(signal: AbortSignal | undefined): Promise<PageResult<Osdk.Instance<any>>>;
	protected handleFetchError(error: unknown, _status: Status, batch: BatchContext): Entry<ObjectSetCacheKey>;
	registerStreamUpdates(sub: Subscription): void;
	invalidateObjectType: (objectType: string, changes: Changes | undefined) => Promise<void>;
	protected createPayload(params: {
		resolvedData: any[]
		isOptimistic: boolean
		status: Status
		lastUpdated: number
	}): ObjectSetPayload;
}
