import { ZodSchema } from 'zod'; import { CallbackParams, TokenResponse, ActionParams, ActionResponse, AuthenticationURLOptions, CreateWalletRequest, CreateWalletResponse, GetWalletResponse, GetWalletRequest, AddAccountResponse, AddAccountRequest } from '../../core/types.js'; /** * Abstract base class for OAuth authenticators * Provides a standardized interface for all OAuth-based authentication providers */ export declare abstract class OAuthAuthenticator { protected name: string; protected baseApiUrl: string; protected authUrl: string; protected tokenUrl: string; allowedScopes: string[]; protected config: any; constructor(name: string, baseApiUrl: string, authUrl: string, tokenUrl: string, allowedScopes: string[], config: any); /** * Generate the OAuth authorization URL for the service */ abstract getAuthenticationURL(scopes: string[], options?: AuthenticationURLOptions): string; /** * Handle the OAuth callback and exchange authorization code for access token */ abstract callback(params: T): Promise; /** * Perform an API action using the service's API */ abstract action(params: ActionParams, accessToken: string, refreshToken?: string, retry?: boolean): Promise; /** * Refresh an access token using a refresh token (if supported) */ refreshToken?(refreshToken: string): Promise; /** * Get user information using the access token (if supported) */ getUserInfo?(accessToken: string): Promise; } /** * Abstract base class for secret-sharing authenticators * Used for services that use API keys, database credentials, etc. */ export declare abstract class SecretSharingAuthenticator { private name; private allowedSecrets; constructor(name: string, allowedSecrets: ZodSchema); /** * Set or update secrets for the authenticator */ abstract set(secrets: any): boolean; abstract action(params: ActionParams, secrets: any): Promise; /** * Validate that the provided secrets match the expected schema */ protected validateSecrets(secrets: any): boolean; } export declare abstract class WalletAuthenticator { protected name: string; protected config: any; constructor(name: string, config: any); abstract getWallet(params: GetWalletRequest): Promise; abstract createWallet(params: CreateWalletRequest): Promise; abstract addAccount(params: AddAccountRequest): Promise; abstract action(params: ActionParams): Promise; } export type { CallbackParams, TokenResponse, ActionData, ActionParams, ActionResponse, AuthenticationURLOptions, } from '../../core/types.js'; //# sourceMappingURL=base.d.ts.map