import * as Cause from "effect/Cause"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; /** * @experimental */ export interface QueryStreamReadBudget { readonly isUnlimited: Effect.Effect; readonly isStopped: Effect.Effect; readonly isExhausted: Effect.Effect; readonly getReadCounts: Effect.Effect; /** * Returns a stream that records reads against this budget and stops * requesting further batches once exhausted. Apply directly to the document * source before buffering, filtering, or combining its output. */ readonly accountFor: (encodedDocuments: Stream.Stream) => Stream.Stream; } /** * @experimental */ export declare const Limits: Schema.Struct<{ readonly maximumRowsRead: Schema.OptionFromOptionalKey>; readonly maximumBytesRead: Schema.OptionFromOptionalKey>; }>; /** * @experimental */ export type Limits = typeof Limits.Type; declare const InvalidReadLimitError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & { readonly _tag: "InvalidReadLimitError"; } & Readonly; /** * @experimental */ export declare class InvalidReadLimitError extends InvalidReadLimitError_base<{ readonly cause: Schema.SchemaError; }> { get message(): string; } /** * @experimental */ export interface ReadCounts { readonly rowsRead: number; readonly bytesRead: number; } /** * @experimental */ export declare const QueryStreamReadBudget: Context.Service; /** * @experimental */ export declare const make: (limits: { readonly maximumRowsRead: Option.Option>; readonly maximumBytesRead: Option.Option>; }) => Effect.Effect; export {}; //# sourceMappingURL=QueryStreamReadBudget.d.ts.map