/**
 * MCP OAuth Client Provider
 *
 * Implements the OAuthClientProvider interface from the MCP SDK.
 * Stores tokens and client registration in the auth database per user+connector.
 * Supports both dynamic client registration and pre-registered OAuth apps.
 */
import type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
import type { OAuthClientMetadata, OAuthClientInformationMixed, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
import type { AuthService } from '../services/auth-service.js';
export interface OAuthCredentials {
    client_id: string;
    client_secret?: string;
    redirect_uri?: string;
}
export declare class McpOAuthProvider implements OAuthClientProvider {
    private connectorName;
    private userId;
    private authService;
    private serverUrl;
    /** Set by redirectToAuthorization — the frontend reads this to open the auth URL. */
    authorizationUrl: string | null;
    private preRegistered?;
    constructor(connectorName: string, userId: number, authService: AuthService, serverUrl: string, oauthCredentials?: OAuthCredentials);
    get redirectUrl(): string | URL;
    get clientMetadata(): OAuthClientMetadata;
    state(): string;
    clientInformation(): OAuthClientInformationMixed | undefined;
    saveClientInformation(clientInfo: OAuthClientInformationMixed): void;
    tokens(): OAuthTokens | undefined;
    saveTokens(tokens: OAuthTokens): void;
    redirectToAuthorization(authorizationUrl: URL): void;
    saveCodeVerifier(codeVerifier: string): void;
    codeVerifier(): string;
}
