// hooks
export { useConfirmPayment } from './hooks/useConfirmPayment';
export { useConfirmSetupIntent } from './hooks/useConfirmSetupIntent';
export { useStripe } from './hooks/useStripe';
export { usePlatformPay } from './hooks/usePlatformPay';
export { usePaymentSheet } from './hooks/usePaymentSheet';
export { useFinancialConnectionsSheet } from './hooks/useFinancialConnectionsSheet';
export { useOnramp } from './hooks/useOnramp';
export { useLinkController } from './hooks/useLinkController';

//components
export { initStripe, StripeProvider } from './components/StripeProvider';
export type { Props as StripeProviderProps } from './components/StripeProvider';
export { CardField } from './components/CardField';
export type { Props as CardFieldProps } from './components/CardField';
export { CardForm } from './components/CardForm';
export type { Props as CardFormProps } from './components/CardForm';
export { AuBECSDebitForm } from './components/AuBECSDebitForm';
export type { Props as AuBECSDebitFormProps } from './components/AuBECSDebitForm';
export { StripeContainer } from './components/StripeContainer';
export type { Props as StripeContainerProps } from './components/StripeContainer';
export { AddToWalletButton } from './components/AddToWalletButton';
export type { Props as AddToWalletButtonProps } from './components/AddToWalletButton';
export { AddressSheet } from './components/AddressSheet';
export type { Props as AddressSheetProps } from './components/AddressSheet';
export { PlatformPayButton } from './components/PlatformPayButton';
export type { Props as PlatformPayButtonProps } from './components/PlatformPayButton';

export * from './functions';

export * from './types/index';

export * from './components/CustomerSheet';
export type { Props as CustomerSheetProps } from './components/CustomerSheet';

export * from './types/EmbeddedPaymentElement';
export * from './types/PaymentSheet';
export * from './types/ConfirmationToken';

export * from './types/components/PaymentMethodMessagingElementComponent';
export type { Props as PaymentMethodMessagingElementProps } from './components/PaymentMethodMessagingElement';
export { PaymentMethodMessagingElement } from './components/PaymentMethodMessagingElement';

//connect components
export {
  ConnectComponentsProvider,
  loadConnectAndInitialize,
} from './connect/ConnectComponentsProvider';
export type {
  StripeConnectInstance,
  StripeConnectInitParams,
  StripeConnectUpdateParams,
} from './connect/connectTypes';
export * from './connect/Components';
