import { ReadonlyJSONObject, ReadonlyJSONValue } from "../../utils/json/json-value.js";
import { AsyncIterableStream } from "../../utils/AsyncIterableStream.js";
import { DeepPartial, TypeAtPath, TypePath } from "./type-path-utils.js";
import { ToolCallArgsReader, ToolCallReader, ToolCallResponseReader } from "./tool-types.js";
import { ToolResponse } from "./ToolResponse.js";
//#region src/core/tool/ToolCallReader.d.ts
declare class ToolCallArgsReaderImpl<T extends ReadonlyJSONObject> implements ToolCallArgsReader<T> {
  private argTextDeltas;
  private handles;
  private args;
  private finished;
  constructor(argTextDeltas: ReadableStream<string>);
  private processStream;
  get<PathT extends TypePath<T>>(...fieldPath: PathT): Promise<TypeAtPath<T, PathT>>;
  streamValues<PathT extends TypePath<T>>(...fieldPath: PathT): AsyncIterableStream<DeepPartial<TypeAtPath<T, PathT>>>;
  streamText<PathT extends TypePath<T>>(...fieldPath: PathT): TypeAtPath<T, PathT> extends string & (infer U) ? AsyncIterableStream<U> : never;
  forEach<PathT extends TypePath<T>>(...fieldPath: PathT): NonNullable<TypeAtPath<T, PathT>> extends Array<infer U> ? AsyncIterableStream<U> : never;
}
declare class ToolCallResponseReaderImpl<TResult extends ReadonlyJSONValue> implements ToolCallResponseReader<TResult> {
  private readonly promise;
  constructor(promise: Promise<ToolResponse<TResult>>);
  get(): Promise<ToolResponse<TResult>>;
}
declare class ToolCallReaderImpl<TArgs extends ReadonlyJSONObject, TResult extends ReadonlyJSONValue> implements ToolCallReader<TArgs, TResult> {
  readonly args: ToolCallArgsReaderImpl<TArgs>;
  readonly response: ToolCallResponseReaderImpl<TResult>;
  private readonly writable;
  private readonly resolve;
  argsText: string;
  constructor();
  appendArgsTextDelta(text: string): Promise<void>;
  finishArgsText(): Promise<void>;
  setResponse(value: ToolResponse<TResult>): void;
  result: {
    get: () => Promise<TResult>;
  };
}
//#endregion
export { ToolCallArgsReaderImpl, ToolCallReaderImpl, ToolCallResponseReaderImpl };
//# sourceMappingURL=ToolCallReader.d.ts.map