import { HttpClient } from './http-client'; import { AuthResponse } from './types'; /** * Authentication manager for handling OAuth2 tokens * * Token lifetimes: * - Access token: varies (typically 1 hour), returned in `expires_in` * - Refresh token: 14 days (1209600 seconds) from issuance */ export declare class AuthManager { private httpClient; private clientId; private clientSecret; private accessToken; private refreshToken; private tokenExpiry; private refreshTokenExpiry; constructor(httpClient: HttpClient, clientId: string, clientSecret: string); /** * Authenticate with username and password */ login(username: string, password: string): Promise; /** * Refresh the access token using the refresh token */ refreshAccessToken(): Promise; /** * Get the current access token, refreshing if necessary */ getAccessToken(): Promise; /** * Check if the user is currently logged in */ isLoggedIn(): boolean; /** * Logout and clear all tokens */ logout(): void; /** * Set tokens from authentication response. * Preserves the existing refresh token if the server doesn't return a new one. * * Access token expiry is calculated from `expires_in`. * Refresh token expiry is set to 14 days from now when a new refresh token is issued. */ private setTokens; /** * Check if the current access token is expired */ private isTokenExpired; /** * Check if the refresh token is expired (14 day lifetime) */ isRefreshTokenExpired(): boolean; /** * Get current token information */ getTokenInfo(): { accessToken: string | null; refreshToken: string | null; expiresAt: Date | null; refreshTokenExpiresAt: Date | null; }; /** * Restore tokens manually (useful for restoring session) * * @param accessToken - The access token * @param refreshToken - The refresh token * @param expiresAt - Access token expiry date * @param refreshTokenExpiresAt - Refresh token expiry date (optional, defaults to 14 days from now) */ restoreTokens(accessToken: string, refreshToken: string, expiresAt: Date, refreshTokenExpiresAt?: Date): void; } //# sourceMappingURL=auth-manager.d.ts.map