import { EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL } from "@ai-sdk/provider-utils";
import { convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId } from "@ai-sdk/provider-utils/test";
import { EmbeddingModelV3, EmbeddingModelV4, Experimental_DecisionModelV4, Experimental_ExtractionModelV4, Experimental_SpeechTranslationModelV4, Experimental_StreamingSpeechModelV4, Experimental_VideoModelV3, Experimental_VideoModelV4, ImageModelV3, ImageModelV4, LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, LanguageModelV4, LanguageModelV4CallOptions, LanguageModelV4GenerateResult, LanguageModelV4StreamResult, ProviderV3, ProviderV4, RerankingModelV3, RerankingModelV4, SpeechModelV3, SpeechModelV4, TranscriptionModelV3, TranscriptionModelV4 } from "@ai-sdk/provider";
//#region src/test/decision-mock-model-v4.d.ts
declare class DecisionMockModelV4 implements Experimental_DecisionModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: string;
  readonly modelId: string;
  readonly supportedQuestionTypes: Experimental_DecisionModelV4['supportedQuestionTypes'];
  doDecide: Experimental_DecisionModelV4['doDecide'];
  /** @deprecated Use `doDecide` instead. */
  doEvaluate(options: Parameters<Experimental_DecisionModelV4['doDecide']>[0]): PromiseLike<import("@ai-sdk/provider").Experimental_DecisionModelV4Result>;
  constructor({ provider, modelId, supportedQuestionTypes, doDecide, doEvaluate }?: {
    provider?: string;
    modelId?: string;
    supportedQuestionTypes?: Experimental_DecisionModelV4['supportedQuestionTypes'];
    doDecide?: Experimental_DecisionModelV4['doDecide'];
    /** @deprecated Use `doDecide` instead. */
    doEvaluate?: Experimental_DecisionModelV4['doDecide'];
  });
}
//#endregion
//#region src/util/simulate-readable-stream.d.ts
/**
 * Creates a ReadableStream that emits the provided values with an optional delay between each value.
 *
 * @param options - The configuration options
 * @param options.chunks - Array of values to be emitted by the stream
 * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.
 * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.
 * @returns A ReadableStream that emits the provided values
 */
declare function simulateReadableStream$1<T>({ chunks, initialDelayInMs, chunkDelayInMs, _internal }: {
  chunks: T[];
  initialDelayInMs?: number | null;
  chunkDelayInMs?: number | null;
  _internal?: {
    delay?: (ms: number | null) => Promise<void>;
  };
}): ReadableStream<T>;
//#endregion
//#region src/test/mock-embedding-model-v3.d.ts
export declare class MockEmbeddingModelV3 implements EmbeddingModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: EmbeddingModelV3['provider'];
  readonly modelId: EmbeddingModelV3['modelId'];
  readonly maxEmbeddingsPerCall: EmbeddingModelV3['maxEmbeddingsPerCall'];
  readonly supportsParallelCalls: EmbeddingModelV3['supportsParallelCalls'];
  doEmbed: EmbeddingModelV3['doEmbed'];
  doEmbedCalls: Parameters<EmbeddingModelV3['doEmbed']>[0][];
  constructor({ provider, modelId, maxEmbeddingsPerCall, supportsParallelCalls, doEmbed }?: {
    provider?: EmbeddingModelV3['provider'];
    modelId?: EmbeddingModelV3['modelId'];
    maxEmbeddingsPerCall?: EmbeddingModelV3['maxEmbeddingsPerCall'] | null;
    supportsParallelCalls?: EmbeddingModelV3['supportsParallelCalls'];
    doEmbed?: EmbeddingModelV3['doEmbed'] | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>> | Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>[];
  });
}
//#endregion
//#region src/test/mock-embedding-model-v4.d.ts
export declare class MockEmbeddingModelV4 implements EmbeddingModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: EmbeddingModelV4['provider'];
  readonly modelId: EmbeddingModelV4['modelId'];
  readonly maxEmbeddingsPerCall: EmbeddingModelV4['maxEmbeddingsPerCall'];
  readonly [EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL]: PromiseLike<number | undefined> | number | undefined;
  readonly supportsParallelCalls: EmbeddingModelV4['supportsParallelCalls'];
  doEmbed: EmbeddingModelV4['doEmbed'];
  doEmbedCalls: Parameters<EmbeddingModelV4['doEmbed']>[0][];
  constructor({ provider, modelId, maxEmbeddingsPerCall, maxInputBytesPerCall, supportsParallelCalls, doEmbed }?: {
    provider?: EmbeddingModelV4['provider'];
    modelId?: EmbeddingModelV4['modelId'];
    maxEmbeddingsPerCall?: EmbeddingModelV4['maxEmbeddingsPerCall'] | null;
    maxInputBytesPerCall?: PromiseLike<number | undefined> | number | undefined;
    supportsParallelCalls?: EmbeddingModelV4['supportsParallelCalls'];
    doEmbed?: EmbeddingModelV4['doEmbed'] | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>> | Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>[];
  });
}
//#endregion
//#region src/test/extraction-mock-model-v4.d.ts
declare class ExtractionMockModelV4 implements Experimental_ExtractionModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: string;
  readonly modelId: string;
  readonly supportedFieldTypes: Experimental_ExtractionModelV4['supportedFieldTypes'];
  doExtract: Experimental_ExtractionModelV4['doExtract'];
  constructor({ provider, modelId, supportedFieldTypes, doExtract }?: {
    provider?: string;
    modelId?: string;
    supportedFieldTypes?: Experimental_ExtractionModelV4['supportedFieldTypes'];
    doExtract?: Experimental_ExtractionModelV4['doExtract'];
  });
}
//#endregion
//#region src/test/mock-image-model-v3.d.ts
export declare class MockImageModelV3 implements ImageModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: ImageModelV3['provider'];
  readonly modelId: ImageModelV3['modelId'];
  readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];
  doGenerate: ImageModelV3['doGenerate'];
  constructor({ provider, modelId, maxImagesPerCall, doGenerate }?: {
    provider?: ImageModelV3['provider'];
    modelId?: ImageModelV3['modelId'];
    maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];
    doGenerate?: ImageModelV3['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-image-model-v4.d.ts
export declare class MockImageModelV4 implements ImageModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: ImageModelV4['provider'];
  readonly modelId: ImageModelV4['modelId'];
  readonly maxImagesPerCall: ImageModelV4['maxImagesPerCall'];
  readonly supportsFileInputs: ImageModelV4['supportsFileInputs'];
  readonly supportsMaskInputs: ImageModelV4['supportsMaskInputs'];
  doGenerate: ImageModelV4['doGenerate'];
  constructor({ provider, modelId, maxImagesPerCall, supportsFileInputs, supportsMaskInputs, doGenerate }?: {
    provider?: ImageModelV4['provider'];
    modelId?: ImageModelV4['modelId'];
    maxImagesPerCall?: ImageModelV4['maxImagesPerCall'];
    supportsFileInputs?: ImageModelV4['supportsFileInputs'];
    supportsMaskInputs?: ImageModelV4['supportsMaskInputs'];
    doGenerate?: ImageModelV4['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-language-model-v3.d.ts
export declare class MockLanguageModelV3 implements LanguageModelV3 {
  readonly specificationVersion = "v3";
  private _supportedUrls;
  readonly provider: LanguageModelV3['provider'];
  readonly modelId: LanguageModelV3['modelId'];
  doGenerate: LanguageModelV3['doGenerate'];
  doStream: LanguageModelV3['doStream'];
  doGenerateCalls: LanguageModelV3CallOptions[];
  doStreamCalls: LanguageModelV3CallOptions[];
  constructor({ provider, modelId, supportedUrls, doGenerate, doStream }?: {
    provider?: LanguageModelV3['provider'];
    modelId?: LanguageModelV3['modelId'];
    supportedUrls?: LanguageModelV3['supportedUrls'] | (() => LanguageModelV3['supportedUrls']);
    doGenerate?: LanguageModelV3['doGenerate'] | LanguageModelV3GenerateResult | LanguageModelV3GenerateResult[];
    doStream?: LanguageModelV3['doStream'] | LanguageModelV3StreamResult | LanguageModelV3StreamResult[];
  });
  get supportedUrls(): Record<string, RegExp[]> | PromiseLike<Record<string, RegExp[]>>;
}
//#endregion
//#region src/test/mock-language-model-v4.d.ts
export declare class MockLanguageModelV4 implements LanguageModelV4 {
  readonly specificationVersion = "v4";
  private _supportedUrls;
  readonly provider: LanguageModelV4['provider'];
  readonly modelId: LanguageModelV4['modelId'];
  doGenerate: LanguageModelV4['doGenerate'];
  doStream: LanguageModelV4['doStream'];
  doGenerateCalls: LanguageModelV4CallOptions[];
  doStreamCalls: LanguageModelV4CallOptions[];
  constructor({ provider, modelId, supportedUrls, doGenerate, doStream }?: {
    provider?: LanguageModelV4['provider'];
    modelId?: LanguageModelV4['modelId'];
    supportedUrls?: LanguageModelV4['supportedUrls'] | (() => LanguageModelV4['supportedUrls']);
    doGenerate?: LanguageModelV4['doGenerate'] | LanguageModelV4GenerateResult | LanguageModelV4GenerateResult[];
    doStream?: LanguageModelV4['doStream'] | LanguageModelV4StreamResult | LanguageModelV4StreamResult[];
  });
  get supportedUrls(): Record<string, RegExp[]> | PromiseLike<Record<string, RegExp[]>>;
}
//#endregion
//#region src/test/mock-provider-v3.d.ts
export declare class MockProviderV3 implements ProviderV3 {
  readonly specificationVersion: "v3";
  languageModel: ProviderV3['languageModel'];
  embeddingModel: ProviderV3['embeddingModel'];
  imageModel: ProviderV3['imageModel'];
  transcriptionModel: ProviderV3['transcriptionModel'];
  speechModel: ProviderV3['speechModel'];
  rerankingModel: ProviderV3['rerankingModel'];
  constructor({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels }?: {
    languageModels?: Record<string, LanguageModelV3>;
    embeddingModels?: Record<string, EmbeddingModelV3>;
    imageModels?: Record<string, ImageModelV3>;
    transcriptionModels?: Record<string, TranscriptionModelV3>;
    speechModels?: Record<string, SpeechModelV3>;
    rerankingModels?: Record<string, RerankingModelV3>;
  });
}
//#endregion
//#region src/test/mock-provider-v4.d.ts
export declare class MockProviderV4 implements ProviderV4 {
  readonly specificationVersion: "v4";
  languageModel: ProviderV4['languageModel'];
  embeddingModel: ProviderV4['embeddingModel'];
  imageModel: ProviderV4['imageModel'];
  transcriptionModel: ProviderV4['transcriptionModel'];
  speechModel: ProviderV4['speechModel'];
  rerankingModel: ProviderV4['rerankingModel'];
  constructor({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels }?: {
    languageModels?: Record<string, LanguageModelV4>;
    embeddingModels?: Record<string, EmbeddingModelV4>;
    imageModels?: Record<string, ImageModelV4>;
    transcriptionModels?: Record<string, TranscriptionModelV4>;
    speechModels?: Record<string, SpeechModelV4>;
    rerankingModels?: Record<string, RerankingModelV4>;
  });
}
//#endregion
//#region src/test/mock-speech-model-v3.d.ts
export declare class MockSpeechModelV3 implements SpeechModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: SpeechModelV3['provider'];
  readonly modelId: SpeechModelV3['modelId'];
  doGenerate: SpeechModelV3['doGenerate'];
  constructor({ provider, modelId, doGenerate }?: {
    provider?: SpeechModelV3['provider'];
    modelId?: SpeechModelV3['modelId'];
    doGenerate?: SpeechModelV3['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-speech-model-v4.d.ts
export declare class MockSpeechModelV4 implements SpeechModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: SpeechModelV4['provider'];
  readonly modelId: SpeechModelV4['modelId'];
  doGenerate: SpeechModelV4['doGenerate'];
  constructor({ provider, modelId, doGenerate }?: {
    provider?: SpeechModelV4['provider'];
    modelId?: SpeechModelV4['modelId'];
    doGenerate?: SpeechModelV4['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-speech-translation-model-v4.d.ts
declare class MockSpeechTranslationModelV4 implements Experimental_SpeechTranslationModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: Experimental_SpeechTranslationModelV4['provider'];
  readonly modelId: Experimental_SpeechTranslationModelV4['modelId'];
  doStream: Experimental_SpeechTranslationModelV4['doStream'];
  constructor({ provider, modelId, doStream }?: {
    provider?: Experimental_SpeechTranslationModelV4['provider'];
    modelId?: Experimental_SpeechTranslationModelV4['modelId'];
    doStream?: Experimental_SpeechTranslationModelV4['doStream'];
  });
}
//#endregion
//#region src/test/mock-streaming-speech-model-v4.d.ts
declare class MockStreamingSpeechModelV4 implements Experimental_StreamingSpeechModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: Experimental_StreamingSpeechModelV4['provider'];
  readonly modelId: Experimental_StreamingSpeechModelV4['modelId'];
  doGenerate: Experimental_StreamingSpeechModelV4['doGenerate'];
  doStream: Experimental_StreamingSpeechModelV4['doStream'];
  constructor({ provider, modelId, doGenerate, doStream }?: {
    provider?: Experimental_StreamingSpeechModelV4['provider'];
    modelId?: Experimental_StreamingSpeechModelV4['modelId'];
    doGenerate?: Experimental_StreamingSpeechModelV4['doGenerate'];
    doStream?: Experimental_StreamingSpeechModelV4['doStream'];
  });
}
//#endregion
//#region src/test/mock-transcription-model-v3.d.ts
export declare class MockTranscriptionModelV3 implements TranscriptionModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: TranscriptionModelV3['provider'];
  readonly modelId: TranscriptionModelV3['modelId'];
  doGenerate: TranscriptionModelV3['doGenerate'];
  constructor({ provider, modelId, doGenerate }?: {
    provider?: TranscriptionModelV3['provider'];
    modelId?: TranscriptionModelV3['modelId'];
    doGenerate?: TranscriptionModelV3['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-transcription-model-v4.d.ts
export declare class MockTranscriptionModelV4 implements TranscriptionModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: TranscriptionModelV4['provider'];
  readonly modelId: TranscriptionModelV4['modelId'];
  doGenerate: TranscriptionModelV4['doGenerate'];
  doStream: TranscriptionModelV4['doStream'];
  doGenerateFromUrl: TranscriptionModelV4['doGenerateFromUrl'];
  constructor({ provider, modelId, doGenerate, doStream, doGenerateFromUrl }?: {
    provider?: TranscriptionModelV4['provider'];
    modelId?: TranscriptionModelV4['modelId'];
    doGenerate?: TranscriptionModelV4['doGenerate'];
    doStream?: TranscriptionModelV4['doStream'];
    doGenerateFromUrl?: TranscriptionModelV4['doGenerateFromUrl'];
  });
}
//#endregion
//#region src/test/mock-reranking-model-v3.d.ts
export declare class MockRerankingModelV3 implements RerankingModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: RerankingModelV3['provider'];
  readonly modelId: RerankingModelV3['modelId'];
  doRerank: RerankingModelV3['doRerank'];
  constructor({ provider, modelId, doRerank }?: {
    provider?: RerankingModelV3['provider'];
    modelId?: RerankingModelV3['modelId'];
    doRerank?: RerankingModelV3['doRerank'];
  });
}
//#endregion
//#region src/test/mock-reranking-model-v4.d.ts
export declare class MockRerankingModelV4 implements RerankingModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: RerankingModelV4['provider'];
  readonly modelId: RerankingModelV4['modelId'];
  doRerank: RerankingModelV4['doRerank'];
  constructor({ provider, modelId, doRerank }?: {
    provider?: RerankingModelV4['provider'];
    modelId?: RerankingModelV4['modelId'];
    doRerank?: RerankingModelV4['doRerank'];
  });
}
//#endregion
//#region src/test/mock-video-model-v3.d.ts
export declare class MockVideoModelV3 implements Experimental_VideoModelV3 {
  readonly specificationVersion = "v3";
  readonly provider: Experimental_VideoModelV3['provider'];
  readonly modelId: Experimental_VideoModelV3['modelId'];
  readonly maxVideosPerCall: Experimental_VideoModelV3['maxVideosPerCall'];
  doGenerate: Experimental_VideoModelV3['doGenerate'];
  constructor({ provider, modelId, maxVideosPerCall, doGenerate }?: {
    provider?: Experimental_VideoModelV3['provider'];
    modelId?: Experimental_VideoModelV3['modelId'];
    maxVideosPerCall?: Experimental_VideoModelV3['maxVideosPerCall'];
    doGenerate?: Experimental_VideoModelV3['doGenerate'];
  });
}
//#endregion
//#region src/test/mock-video-model-v4.d.ts
export declare class MockVideoModelV4 implements Experimental_VideoModelV4 {
  readonly specificationVersion = "v4";
  readonly provider: Experimental_VideoModelV4['provider'];
  readonly modelId: Experimental_VideoModelV4['modelId'];
  readonly maxVideosPerCall: Experimental_VideoModelV4['maxVideosPerCall'];
  doGenerate: Experimental_VideoModelV4['doGenerate'];
  handleWebhookOption: Experimental_VideoModelV4['handleWebhookOption'];
  doStart: Experimental_VideoModelV4['doStart'];
  doStatus: Experimental_VideoModelV4['doStatus'];
  constructor(options?: {
    provider?: Experimental_VideoModelV4['provider'];
    modelId?: Experimental_VideoModelV4['modelId'];
    maxVideosPerCall?: Experimental_VideoModelV4['maxVideosPerCall'];
    doGenerate?: Experimental_VideoModelV4['doGenerate'];
    handleWebhookOption?: Experimental_VideoModelV4['handleWebhookOption'];
    doStart?: Experimental_VideoModelV4['doStart'];
    doStatus?: Experimental_VideoModelV4['doStatus'];
  });
}
//#endregion
//#region src/test/mock-values.d.ts
export declare function mockValues<T>(...values: T[]): () => T;
//#endregion
//#region test/index.d.ts
/**
 * @deprecated Use `simulateReadableStream` from `ai` instead.
 */
export declare const simulateReadableStream: typeof simulateReadableStream$1;
/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */
export declare const Experimental_EvaluationMockModelV4: typeof DecisionMockModelV4;
/** @deprecated Use `Experimental_DecisionMockModelV4` instead. */
export type Experimental_EvaluationMockModelV4 = DecisionMockModelV4;
//#endregion
export { DecisionMockModelV4 as Experimental_DecisionMockModelV4, ExtractionMockModelV4 as Experimental_ExtractionMockModelV4, MockSpeechTranslationModelV4 as Experimental_MockSpeechTranslationModelV4, MockStreamingSpeechModelV4 as Experimental_MockStreamingSpeechModelV4, convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId };
//# sourceMappingURL=index.d.ts.map