import type { ThemeOptions, SxProps } from '@mui/material';
import type { LiteralUnion } from 'type-fest';

export type CheckoutScenario = 'credit-topup' | 'subscription' | 'composite';

export type PaymentThemeOptions = ThemeOptions & {
  sx?: SxProps;
};

export interface CheckoutV2Props {
  id: string;
  onPaid?: (result: any) => void;
  onError?: (err: Error) => void;
  goBack?: () => void;
  theme?: 'default' | 'inherit' | PaymentThemeOptions;
  mode?: LiteralUnion<'standalone' | 'inline', string>;
  extraParams?: Record<string, string>;
}
