import { GCPCredentials } from "../utils/gcp-auth.cjs";
import { GoogleAuthOptions } from "google-auth-library";
//#region src/clients/node.d.ts
/**
 * Configuration parameters for the NodeApiClient.
 *
 * This interface defines the authentication options available for Node.js-based
 * API clients. Authentication can be provided via an API key, GCP service
 * account credentials, or advanced Google Auth options. The client will
 * automatically check environment variables if explicit values are not provided.
 *
 * @interface
 */
interface NodeApiClientParams {
  /**
   * Google API key for authentication.
   *
   * If not provided, the client will attempt to read from the
   * `GOOGLE_API_KEY` environment variable.
   *
   * @see https://cloud.google.com/docs/authentication/api-keys
   */
  apiKey?: string;
  /**
   * GCP service account credentials for authentication.
   *
   * Can be provided as either:
   * - A JSON string containing the service account key
   * - A GCPCredentials object
   *
   * If not provided, the client will attempt to read from the
   * `GOOGLE_CLOUD_CREDENTIALS` environment variable.
   *
   * @see https://cloud.google.com/iam/docs/creating-managing-service-account-keys
   */
  credentials?: string | GCPCredentials;
  /**
   * Google Auth options configuration.
   *
   * Provides fine-grained control over authentication behavior using the
   * google-auth-library. This option enables:
   * - Custom OAuth2 scopes
   * - Application Default Credentials (ADC)
   * - Impersonation and delegation
   * - Custom credential sources
   *
   * When provided, this takes precedence over simple credential-based auth
   * but is lower priority than API key authentication.
   *
   * @see https://github.com/googleapis/google-auth-library-nodejs
   * @see https://cloud.google.com/docs/authentication/application-default-credentials
   */
  googleAuthOptions?: GoogleAuthOptions;
}
//#endregion
export { NodeApiClientParams };
//# sourceMappingURL=node.d.cts.map