export type {
  OAuthToken,
  StoredCredentials,
  StoreResult,
  DeleteResult,
  CredentialsStore,
  TokenSource,
} from './types.js';

export {
  storeCredentials,
  getCredentials,
  type GetCredentialsOptions,
  getCredentialsSync,
  deleteCredentials,
  updateToken,
  invalidateCredentialsCache,
  getToken,
  getTokenSync,
  resolveToken,
  type ResolvedToken,
  getTokenWithRefresh,
  type TokenWithRefreshResult,
  resolveTokenWithRefresh,
  type ResolvedTokenWithRefresh,
  refreshAuthToken,
  type RefreshResult,
  resolveTokenFull,
  type FullTokenResolution,
  type GhCliTokenGetter,
  resetTokenResolution,
  listStoredHosts,
  listStoredHostsSync,
  hasCredentials,
  hasCredentialsSync,
  isTokenExpired,
  isRefreshTokenExpired,
  getCredentialsFilePath,
  readCredentialsStore,
  encrypt,
  decrypt,
  ensureOctocodeDir,
  OCTOCODE_DIR,
  CREDENTIALS_FILE,
  KEY_FILE,
  ENV_TOKEN_VARS,
  getTokenFromEnv,
  getEnvTokenSource,
  hasEnvToken,
} from './storage.js';

export { getGhCliToken } from './ghCli.js';
