/** * Persistent OAuth session and static model selection for one subscription provider. * @module dsh-coding-subscription-oauth/oauth-session */ import type { Api, AuthInteraction, Credential, CredentialStore, Model, MutableModels, OAuthCredential, Provider } from "@earendil-works/pi-ai"; import type { OAuthProviderDefinition } from "./oauth-providers.js"; import { type LoginPersistOptions, OAuthCredentialFileStore } from "./store.js"; export declare function oauthModelsCachePath(basename: string, dshHome?: string): string; export interface OAuthProviderStatus { authenticated: boolean; expiresAt?: number; } export declare class OAuthProviderSession { readonly definition: OAuthProviderDefinition; readonly store: OAuthCredentialFileStore; readonly models: MutableModels; private readonly catalog; private readonly cacheFile; private selectedIds; private readonly cacheQueue; private readonly onCatalogChange; private readonly onCredentialChange; constructor(definition: OAuthProviderDefinition, onCatalogChange?: () => void, store?: OAuthCredentialFileStore, cacheFile?: string, onCredentialChange?: () => void, /** Optional CredentialStore overlay (pool proxy); defaults to `store`. */ credentials?: CredentialStore); availableModels(): Model[]; selectedModelIds(): string[] | undefined; visibleModels(): Model[]; provider(): Provider; loadCachedModels(): Promise; setSelectedModels(ids: readonly string[] | undefined): Promise; status(): Promise; login(interaction: AuthInteraction, persist?: LoginPersistOptions): Promise; notifyCredentialChange(): void; resolveAccessToken(): Promise; /** * Backdate the stored token's expiry so the next `getAuth()` refreshes. * Called after an upstream 401 rejected a locally-valid token. */ invalidateAccessToken(): Promise; storedCredential(): Promise; logout(): Promise; private writeCache; } //# sourceMappingURL=oauth-session.d.ts.map