@lineai/bluebeam-api
Version:
Your unofficial library for Bluebeam API for human and AI developers. Provides TypeScript support, entity classes, and developer-friendly features. Perfect for AI coders, construction professionals, and document management tasks. Includes comprehensive JS
31 lines (30 loc) • 1.69 kB
TypeScript
import { OAuthConfig, TokenResponse, TokenStorage } from '../types/auth';
import { HttpClient } from './http-client';
export declare const createAuthorizationUrl: (config: OAuthConfig, state: string) => string;
export declare const exchangeCodeForToken: (httpClient: HttpClient, config: OAuthConfig, code: string, codeVerifier?: string) => Promise<TokenResponse>;
export declare const refreshAccessToken: (httpClient: HttpClient, config: OAuthConfig, refreshToken: string) => Promise<TokenResponse>;
export type TokenManager = {
readonly getAccessToken: () => Promise<string | null>;
readonly setTokens: (tokenResponse: TokenResponse) => Promise<void>;
readonly refreshToken: () => Promise<TokenResponse>;
readonly clearTokens: () => Promise<void>;
};
export declare const createTokenManager: (httpClient: HttpClient, config: OAuthConfig, storage: TokenStorage) => Promise<TokenManager>;
export type OAuthClientConfig = {
readonly client_id: string;
readonly client_secret: string;
readonly redirect_uri: string;
readonly scope: string;
readonly base_url?: string;
readonly tokenStorage?: TokenStorage;
readonly httpClient?: HttpClient;
};
export declare const createOAuthClient: (config: OAuthClientConfig) => Promise<{
createAuthorizationUrl: (state: string) => string;
exchangeCodeForToken: (code: string, codeVerifier?: string) => Promise<TokenResponse>;
refreshAccessToken: () => Promise<TokenResponse>;
getAccessToken: () => Promise<string | null>;
clearTokens: () => Promise<void>;
setTokens: (tokenResponse: TokenResponse) => Promise<void>;
}>;
export type OAuthClient = Awaited<ReturnType<typeof createOAuthClient>>;