import type { AuthStorage } from '../app/auth/auth-storage.js';
import type { ShortcutClientLogger } from '../app/observability/client-logging/client-logger.js';
import { type UserInfo } from '../app/services/user-context.js';
type ShortcutUserInfoAuthStorage = Pick<AuthStorage, 'getApiKey'>;
type RuntimeApiKeyAuthStorage = ShortcutUserInfoAuthStorage & Pick<AuthStorage, 'setRuntimeApiKey'>;
type ShortcutUserInfoLogger = Pick<ShortcutClientLogger, 'setUserId' | 'clearUserId' | 'setUserContext' | 'clearUserContext'>;
export type FetchShortcutUserInfo = (accessToken: string) => Promise<UserInfo | null>;
export declare function resolveShortcutUserInfo(authStorage: ShortcutUserInfoAuthStorage, fetchUserInfo?: FetchShortcutUserInfo): Promise<UserInfo | null>;
export declare function applyShortcutUserInfoToLogger(clientLogger: ShortcutUserInfoLogger, userInfo: UserInfo | null): void;
export declare function refreshShortcutUserInfoLoggerContext(authStorage: ShortcutUserInfoAuthStorage, clientLogger: ShortcutUserInfoLogger, fetchUserInfo?: FetchShortcutUserInfo): Promise<UserInfo | null>;
export declare function applyRuntimeApiKeyAndRefreshShortcutLoggerContext(options: {
    authStorage: RuntimeApiKeyAuthStorage;
    clientLogger: ShortcutUserInfoLogger;
    providerId: string;
    apiKey: string;
    fetchUserInfo?: FetchShortcutUserInfo;
}): Promise<UserInfo | null | undefined>;
export {};
//# sourceMappingURL=shortcut-user-logger-context.d.ts.map