import type { OAuthClientProvider, OAuthDiscoveryState } from '@modelcontextprotocol/sdk/client/auth.js'; import type { OAuthClientInformationMixed, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js'; import { McpOAuthStore } from './mcp-oauth-store.js'; export type McpOAuthInteraction = { redirectUrl: URL; state: string; onRedirect: (authorizationUrl: URL) => void | Promise; }; export type McpOAuthClientProviderOptions = { serverUrl: URL; clientId?: string; interaction?: McpOAuthInteraction; store?: McpOAuthStore; }; export declare class XopcMcpOAuthClientProvider implements OAuthClientProvider { private readonly options; private readonly store; private codeVerifierValue?; constructor(options: McpOAuthClientProviderOptions); get redirectUrl(): URL; get clientMetadata(): OAuthClientMetadata; state(): string | undefined; clientInformation(): Promise; saveClientInformation(clientInformation: OAuthClientInformationMixed): Promise; tokens(): Promise; saveTokens(tokens: OAuthTokens): Promise; redirectToAuthorization(authorizationUrl: URL): Promise; saveCodeVerifier(codeVerifier: string): void; codeVerifier(): string; saveDiscoveryState(discoveryState: OAuthDiscoveryState): Promise; discoveryState(): Promise; invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier' | 'discovery'): Promise; }