import type { RpcHandler, ShopUser } from '../../types';
/**
 * Retrieves the user from the context.
 *
 * @param context The RPC context.
 *
 * @returns An object containing the user object, or undefined if not logged in.
 */
declare const getUser: RpcHandler<{
    user?: ShopUser;
}>;
/**
 * Fetches user data using the provided access token.
 *
 * @param param An object containing the access token.
 * @param param.accessToken The access token for authentication.
 * @param context The RPC context.
 *
 * @returns The fetched user data. It will return an `ErrorResponse` alternatively
 * if an error occurs during the API call.
 */
declare const fetchUser: RpcHandler<{
    accessToken?: string;
}, ShopUser>;
/**
 * Refreshes the user session and data.
 * If the user is no longer logged in, the session is destroyed.
 *
 * @param context The RPC context.
 *
 * @returns An object containing the user object, or undefined if session is destroyed.
 * It will return an `ErrorResponse` if no session is found or other errors occur.
 */
declare const refreshUser: RpcHandler<{
    user?: ShopUser;
}>;
/**
 * Retrieves or refreshes the access token.
 *
 * @param param The parameter containing the flag for forced token refresh.
 * @param param.forceTokenRefresh Whether to force a token refresh. Defaults to false.
 * @param context The RPC context.
 *
 * @returns The access token. It will return an `ErrorResponse` alternatively
 * if no session, access token, or refresh token is found.
 */
declare const getAccessToken: RpcHandler<{
    forceTokenRefresh?: boolean;
}, string>;
export { getUser, fetchUser, refreshUser, getAccessToken };
