import type { ProjectKeys } from "./credentials.js";
import type { Client } from "./kernel.js";
/** The cached keys for `projectId`, or null when none are cached or this process saw the service key refused. */
export declare function usableProjectKeys(client: Client, projectId: string): Promise<ProjectKeys | null>;
/** The command that drops a stale entry from this machine's project-key cache. */
export declare function deleteCachedProjectKeysCommand(projectId: string): string;
/**
 * Run `call` with the cached keys; when the gateway refuses the cached key at
 * authentication, run it once more as the caller's principal (`call(null)`).
 * When the principal is refused too (no wallet or session), throw the
 * original refusal with the stale cache entry named.
 */
export declare function withPrincipalFallback<T>(client: Client, projectId: string, keys: ProjectKeys | null, call: (keys: ProjectKeys | null) => Promise<T>): Promise<T>;
//# sourceMappingURL=stale-project-key.d.ts.map