import { ComponentProps, Dispatch, FC, RefObject, SetStateAction } from 'react';
import { AlertProps } from '../../../components/Alert';
import { mapViewToComponent } from '../components/DynamicWidgetViews/mapViewToComponent';
export declare const DynamicSettingsViews: readonly ["settings", "account-and-security-settings"];
export type DynamicSettingsType = typeof DynamicSettingsViews[number];
export declare const DynamicGlobalWalletViews: readonly ["global-wallet", "connected-apps"];
export type DynamicGlobalWalletType = typeof DynamicGlobalWalletViews[number];
export declare const DynamicPasskeyWidgetViews: readonly ["manage-passkeys"];
export declare const DynamicMfaWidgetViews: readonly ["manage-totp-mfa", "manage-totp-mfa-no-footer", "manage-passkeys-mfa"];
export type DynamicPasskeyWidgetViewsType = typeof DynamicPasskeyWidgetViews[number];
export type DynamicMfaWidgetViewsType = typeof DynamicMfaWidgetViews[number];
export declare const DynamicSessionManagementViews: readonly ["session-management", "session-management-info", "session-management-revoke-access"];
export type DynamicSessionManagementViewsType = typeof DynamicSessionManagementViews[number];
export declare const DynamicTransactionsWidgetViews: readonly ["send-balance"];
export type DynamicTransactionsWidgetViewsType = typeof DynamicTransactionsWidgetViews[number];
export type DynamicWidgetViews = 'wallets' | 'profile' | 'edit-profile' | 'choose-wallet-funding-method' | 'receive-wallet-funds' | 'deposited-exchange' | 'receive-exchange-funds' | 'crypto-com-onramp' | DynamicTransactionsWidgetViewsType | DynamicPasskeyWidgetViewsType | DynamicMfaWidgetViewsType | DynamicSettingsType | DynamicGlobalWalletType | DynamicSessionManagementViewsType | 'connected-apps' | 'deposit-view' | 'confirm-exchange-transfer' | 'choose-onramp-provider' | 'choose-linked-wallet' | 'waas-backup' | 'waas-backup-info' | 'wallet-delegation' | 'wallets-delegated-settings';
export type DynamicWidgetViewMapConstraint = Record<DynamicWidgetViews, FC<any>>;
export type DynamicWidgetViewMap = typeof mapViewToComponent;
export type SetDynamicWidgetView = <T extends DynamicWidgetViews>(view: T, props?: ComponentProps<DynamicWidgetViewMap[T]>) => void;
export type WidgetContextProps = {
    availableWalletsContainerRef: RefObject<HTMLDivElement>;
    dynamicWidgetView: DynamicWidgetViews;
    goToInitialDynamicWidgetView: () => void;
    goToProfileView: () => void;
    inlineControlsRef: RefObject<HTMLDivElement>;
    isOpen: boolean;
    overridenWidgetView: DynamicWidgetViews;
    setDynamicWidgetView: SetDynamicWidgetView;
    setIsOpen: Dispatch<SetStateAction<boolean>>;
    widgetRef: RefObject<HTMLDivElement>;
    viewProps: Record<string, unknown>;
    headerAlert: WidgetHeaderAlert | null;
    setHeaderAlert: SetHeaderAlert;
};
export type WidgetHeaderAlert = {
    variant: AlertProps['variant'];
    content: string | JSX.Element;
};
export type SetHeaderAlert = (alert: WidgetHeaderAlert & {
    timeout?: number;
}) => void;
