interface TokenData {
    accessToken: string;
    refreshToken: string;
    expiresAt: number;
    scope: string[];
    lastRefreshAttempt?: number;
    refreshAttempts?: number;
    codeVerifier?: string;
}
declare function loadTokenData(): TokenData | null;
declare function saveTokenData(data: TokenData): void;
declare function generateAuthUrl(): {
    url: string;
    codeVerifier: string;
};
declare function exchangeCodeForTokens(code: string, codeVerifier: string): Promise<TokenData>;
declare function refreshAccessToken(): Promise<string>;
declare function getValidAccessToken(): Promise<string>;
export { generateAuthUrl, exchangeCodeForTokens, refreshAccessToken, getValidAccessToken, loadTokenData, saveTokenData, TokenData };
