import type { HttpClient } from './http-transport.js'; /** * Generate a random PKCE code verifier (43-128 chars, URL-safe) */ export declare function generateCodeVerifier(length?: number): string; /** * Generate PKCE code challenge from verifier (S256) */ export declare function generateCodeChallenge(verifier: string): Promise; /** * Build OAuth authorization URL */ export declare function buildAuthorizationUrl(baseUrl: string, params: { clientId: string; redirectUri: string; scope?: string; state?: string; codeChallenge?: string; }): string; /** * Token storage interface — implement to persist tokens */ export interface TokenStorage { getAccessToken(): Promise; getRefreshToken(): Promise; setTokens(accessToken: string, refreshToken: string | null, expiresIn: number): Promise; clearTokens(): Promise; } /** * In-memory token storage (default, not persistent) */ export declare class InMemoryTokenStorage implements TokenStorage { private accessToken; private refreshToken; private expiresAt; getAccessToken(): Promise; getRefreshToken(): Promise; setTokens(accessToken: string, refreshToken: string | null, expiresIn: number): Promise; clearTokens(): Promise; } /** * OAuth client — handles token exchange and refresh */ export declare class OAuthClient { private http; private storage; private clientId; private clientSecret?; constructor(http: HttpClient, options: { clientId: string; clientSecret?: string; storage?: TokenStorage; }); /** * Exchange authorization code for tokens */ exchangeCode(code: string, redirectUri: string, codeVerifier?: string): Promise>; /** * Refresh access token using refresh token */ refreshAccessToken(): Promise | null>; /** * Exchange API token for access token */ exchangeApiToken(apiToken: string): Promise>; /** * Get a valid access token (refreshes if expired) */ getValidToken(): Promise; getStorage(): TokenStorage; } //# sourceMappingURL=oauth.d.ts.map