import { TwoFactorAuthErrorResponse } from '@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse';
import { PropsWithChildren } from 'react';
import { SynapseContextType } from '../../context';
export type ApplicationSessionManagerProps = PropsWithChildren<{
    /** The realm that an unauthenticated user should be signed in to. Defaults to "0", the public Synapse realm */
    defaultRealmId?: string;
    downloadCartPageUrl?: string;
    maxAge?: number;
    /** Called if the user is not authenticated when the session is initialized. Can be used to trigger an error if authentication is expected. */
    onMissingExpectedAuthentication?: () => void;
    onTwoFactorAuthResetThroughSSO?: (twoFactorAuthSSOError: TwoFactorAuthErrorResponse, twoFaResetToken: string) => void;
    appId?: SynapseContextType['appId'];
    requireAuthentication?: boolean;
}>;
/**
 * The ApplicationSessionManager will manage Synapse user session in an app. The goal is that any custom app should
 * just be able to add this component near the top of its component tree and have the full Synapse login lifecycle managed
 * while exposing minimal complexity to the app itself.
 *
 * Custom per-app behavior should be customized with generalizable props to this component.
 *
 * The session data can be accessed with useApplicationSessionContext.
 *
 * This component must be called within a react-router Router. ApplicationSessionManager also wraps all of its children
 * in a SynapseContextProvider.
 * @param props
 * @constructor
 */
export declare function ApplicationSessionManager(props: ApplicationSessionManagerProps): import("react/jsx-runtime").JSX.Element;
export default ApplicationSessionManager;
//# sourceMappingURL=ApplicationSessionManager.d.ts.map