import { RewardExchangeViewProps } from "./sqm-reward-exchange-list-view";
import { VNode } from "../../stencil-public-runtime";
export declare type ExchangeItem = {
  key: string;
  name: string;
  description: string;
  imageUrl: string;
  available: boolean;
  unavailableReasonCode: string;
  ruleType: string;
  sourceUnit: string;
  sourceValue: number;
  prettySourceValue: string;
  sourceMinValue: number;
  prettySourceMinValue: string;
  sourceMaxValue: number;
  prettySourceMaxValue: string;
  destinationMinValue: number;
  prettyDestinationMinValue: string;
  destinationMaxValue: number;
  prettyDestinationMaxValue: string;
  globalRewardKey: string;
  destinationUnit: string;
  steps?: ExchangeStep[];
};
export declare type ExchangeStep = {
  destinationValue: number;
  sourceValue: number;
  prettyDestinationValue: string;
  prettySourceValue: string;
  available: boolean;
  unavailableReasonCode: string;
  globalRewardKey: string;
  rewardInput: ExchangeInput;
};
export declare type ExchangeInput = {
  accountId: string;
  userId: string;
  redeemCreditInput?: {
    amount: number;
    unit: string;
  };
  rewardInput?: {
    type: string;
    unit: string;
    assignedCredit?: number;
    valueInCents?: number;
  };
  globalRewardKey?: string;
};
export interface RewardExchangeProps {
  notAvailableError: string;
  chooseRewardTitle: string;
  chooseAmountTitle: string;
  confirmationTitle: string;
  rewardTitle: string;
  cancelText: string;
  backText: string;
  continueText: string;
  continueToConfirmationText: string;
  redeemText: string;
  redeemTitle: string;
  redemptionSuccessText: string;
  sourceAmountMessage: string;
  tooltipText: string;
  doneText: string;
  selectText: string;
  queryError: string;
  redemptionError: string;
  notEnoughError: string;
  promoCode: string;
  skeletonCardNum: number;
  rewardNameTitle: string;
  rewardAmountTitle: string;
  rewardRedeemedText: string;
  costTitle: string;
  empty: VNode;
  stateController: string;
  demoData?: object;
}
export declare type Stages = "" | "chooseReward" | "chooseAmount" | "confirmation";
export declare type ExchangeState = {
  selectedItem: ExchangeItem;
  selectedStep: ExchangeStep;
  redeemStage: string;
  amount: number;
  exchangeError: boolean;
};
export declare function useRewardExchangeList(props: RewardExchangeProps): RewardExchangeViewProps;
