import { BaseTool } from '../BaseTool';
import { ToolContext } from '../toolContext';
/**
 * Auth credential types enum
 */
export declare enum AuthCredentialTypes {
    OPEN_ID_CONNECT = "open_id_connect"
}
/**
 * OAuth2 Auth interface
 */
export interface OAuth2Auth {
    clientId: string;
    clientSecret: string;
}
/**
 * Auth credential interface
 */
export interface AuthCredential {
    authType: AuthCredentialTypes;
    oauth2: OAuth2Auth;
}
/**
 * RestApiTool interface (placeholder for actual implementation)
 */
export interface RestApiTool {
    name: string;
    description: string;
    isLongRunning: boolean;
    execute: (params: Record<string, any>, context: ToolContext) => Promise<any>;
    getDeclaration: () => any;
    authCredential?: AuthCredential;
}
/**
 * GoogleApiTool class
 * A wrapper around RestApiTool that adds Google API specific functionality
 */
export declare class GoogleApiTool extends BaseTool {
    private restApiTool;
    /**
     * Create a new GoogleApiTool
     * @param restApiTool The underlying RestApiTool to wrap
     */
    constructor(restApiTool: RestApiTool);
    /**
     * Get the function declaration
     * @returns The function declaration from the underlying RestApiTool
     */
    protected _getDeclaration(): any;
    /**
     * Execute the tool
     * @param params The parameters for the tool execution
     * @param context The context for the tool execution
     * @returns The result of executing the underlying RestApiTool
     */
    execute(params: Record<string, any>, context: ToolContext): Promise<any>;
    /**
     * Configure authentication for the tool
     * @param clientId The OAuth2 client ID
     * @param clientSecret The OAuth2 client secret
     */
    configureAuth(clientId: string, clientSecret: string): void;
}
