import { ContractCall, ModalIntegrationStyles, Transaction } from "@src/models";

export type WidgetIntegrationPayload = {
  integratorId: string;
  dstChain?: string;
  dstToken?: string;
  srcChain?: string;
  srcToken?: string;
  customContractCalls?: ContractCall[];
  desc?: string;
  dstDisplayToken?: string;
  lightTheme?: boolean;
  defaultWalletPicker?: boolean;
  styles?: ModalIntegrationStyles | string;
  onPendingTransactionsChange?: (transactions: Transaction[]) => void;
  dstTokenLocked?: boolean;
  dstChainLocked?: boolean;
  srcTokenLocked?: boolean;
  srcChainLocked?: boolean;
  onDstTokenChange?: (
    token: { address: string; symbol: string } | undefined,
  ) => void;
  onDstChainChange?: (chain: string | undefined) => void;
  onSrcTokenChange?: (
    token: { address: string; symbol: string } | undefined,
  ) => void;
  onSrcChainChange?: (chain: string | undefined) => void;
  onConnectWallet?: () => void;
  bridge?: boolean;
  override?: {
    apiUrl?: string;
  };
  integratorFee?: number;
  integratorFeeReceiverAddress?: string;
  highlightedDstTokens?: string[];
};
