import { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from "axios"; import { type TigerAuthenticatedCallGuard } from "../../types/index.js"; /** * Runs a settings-resolution request under a generation-scoped cache id and records the id for * eviction by the next settings write. * * The cacheScope must uniquely identify the call site including every request parameter that * changes the response (workspace, user-inclusion), otherwise two different reads would share a * cache entry and cross-serve each other's bodies. * * When a settings write completes while the request is in flight, the response lands under an * already-superseded generation id that no future read will look up; it is dropped right away * instead of tracked. The raced caller still receives the possibly-pre-write body once — that is * server-side request ordering no client cache can fix — but the cache never serves it again. * * @internal */ export declare function trackSettingsResponse(axiosInstance: AxiosInstance, cacheScope: string, request: (requestOptions: AxiosRequestConfig & { id: string; }) => Promise): Promise; /** * Invalidates all settings-resolution reads after a settings write: bumps the generation, so * subsequent reads use fresh cache ids and cannot hit — or deduplicate onto — anything cached or * in flight from before the write, and evicts the superseded tracked entries so they do not * linger in memory until their TTL. * * Deliberately coarse: org-level settings cascade into every workspace's resolved settings, so any * settings write (org, workspace, or user) invalidates all of them instead of reasoning per scope. * Over-invalidation only costs one cheap refetch; under-invalidation would mean silent stale data. * * @internal */ export declare function invalidateSettingsResponses(authCall: TigerAuthenticatedCallGuard): Promise; //# sourceMappingURL=responseCacheCoherence.d.ts.map