import { GoogleAuthOptions, GoogleAuth } from 'google-auth-library';

/**
 * Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Safely extracts the error message from the error.
 * @param e The error
 * @returns The error message
 */
declare function extractErrMsg(e: unknown): string;
/**
 * Gets the model name without certain prefixes..
 * e.g. for "models/vertexai/gemini-2.5-pro" it returns just 'gemini-2.5-pro'
 * @param name A string containing the model string with possible prefixes
 * @returns the model string stripped of certain prefixes
 */
declare function modelName(name?: string): string | undefined;
/**
 * Gets the suffix of a model string.
 * Throws if the string is empty.
 * @param name A string containing the model string
 * @returns the model string stripped of prefixes and guaranteed not empty.
 */
declare function checkModelName(name?: string): string;
declare const TEST_ONLY: {
    setFakeDerivedOptions: typeof setFakeDerivedOptions;
};
declare function setFakeDerivedOptions(options: any): void;
interface CommonOptions {
    location?: string;
    projectId?: string;
    googleAuth?: GoogleAuthOptions;
}
interface DerivedOptions {
    location: string;
    projectId: string;
    authClient: GoogleAuth;
}
declare function getDerivedOptions(pluginName: string, options?: CommonOptions): Promise<DerivedOptions>;

export { TEST_ONLY, checkModelName, extractErrMsg, getDerivedOptions, modelName };
