/** * Shared OAuth store + live catalog for the host plugin and CLI. * @module dsh-coding-subscription-oauth/session */ import type { Api, CredentialStore, Model, MutableModels, Provider } from "@earendil-works/pi-ai"; import { type CatalogSource } from "./catalog.js"; import { GrokBuildCredentialStore } from "./store.js"; /** One process-local owner of the credential and the account model list. */ export declare class GrokBuildSession { readonly store: GrokBuildCredentialStore; readonly models: MutableModels; private readonly baselineCatalog; private liveIds; private liveModels; private selectedIds; private readonly cacheQueue; private source; private listingError; private readonly cacheFile; private onCatalogChange; private onCredentialChange; constructor(store?: GrokBuildCredentialStore, onCatalogChange?: () => void, onCredentialChange?: () => void, /** Optional CredentialStore overlay (pool proxy); defaults to `store`. */ credentials?: CredentialStore); /** Secret-free listing diagnostic from the last refresh. */ get catalogError(): string | undefined; get catalogSource(): CatalogSource; availableModels(): Model[]; selectedModelIds(): string[] | undefined; visibleModels(): Model[]; /** Provider whose id matches the harness route so PiAiAdapter can list models. */ provider(): Provider; loadCachedCatalog(): Promise; refreshLiveCatalog(signal?: AbortSignal): Promise; /** Notify listeners that the stored OAuth credential changed (login / import / logout). */ notifyCredentialChange(): void; setSelectedModels(ids: readonly string[] | undefined): Promise; /** * Backdate the stored token's expiry so the next `getAuth()` refreshes. * Called after an upstream 401 rejected a locally-valid token. */ invalidateAccessToken(): Promise; logout(): Promise; private writeCache; } //# sourceMappingURL=session.d.ts.map