/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { SettingsService } from '../settings/SettingsService.js';
import type { GenerateChatOptions } from '../providers/IProvider.js';
import type { ProviderToolset } from '../providers/IProvider.js';
import type { Config } from '../config/config.js';
import { type ProviderRuntimeContext } from '../runtime/providerRuntimeContext.js';
import { type RuntimeInvocationContext } from '../runtime/RuntimeInvocationContext.js';
interface SettingsOverrides {
    global?: Record<string, unknown>;
    provider?: Record<string, unknown>;
}
export interface ProviderCallOptionsInit {
    providerName: string;
    contents?: GenerateChatOptions['contents'];
    tools?: ProviderToolset;
    metadata?: Record<string, unknown>;
    userMemory?: GenerateChatOptions['userMemory'];
    resolved?: GenerateChatOptions['resolved'];
    settings?: SettingsService;
    settingsOverrides?: SettingsOverrides;
    config?: Config;
    configOverrides?: Partial<Record<string, unknown>>;
    runtime?: ProviderRuntimeContext;
    runtimeId?: string;
    runtimeMetadata?: Record<string, unknown>;
    invocation?: RuntimeInvocationContext;
}
/**
 * Creates GenerateChatOptions with explicit settings/config/runtime bindings.
 * Tests should prefer this helper over calling provider methods directly
 * with ad-hoc option objects to ensure fail-fast coverage remains intact.
 */
export declare function createProviderCallOptions(init: ProviderCallOptionsInit): GenerateChatOptions & {
    settings: SettingsService;
    config: Config;
    runtime: ProviderRuntimeContext;
    invocation: RuntimeInvocationContext;
};
export {};
