import { TypographyColorType } from '@cleartrip/ct-design-typography'; import { AlertCalloutVariant } from '@cleartrip/ct-design-alert-callout'; import { FieldChangeEvent } from '@cleartrip/ct-design-field'; import { COUPON_PRIMARY_CTA_TYPE } from './constants'; export interface ICouponAndGVCallout { prefixIcon?: React.ReactNode; text: string; variant?: AlertCalloutVariant; } export interface ICouponAndGvFieldAction { label: string; variant: TypographyColorType; onClick?: () => void; isLoading?: boolean; isDisabled?: boolean; } export interface ICouponAndGvField { onChange: (e: FieldChangeEvent) => void; onBlur?: () => void; placeholder: string; value: string; disabled?: boolean; errorMessage?: string; actions?: ICouponAndGvFieldAction[]; } export interface ICouponListItem { description: string; offerDesc?: string; couponCode: string; couponType?: string[]; icon: React.ReactNode; primaryCTA?: { disabled?: boolean; label: string; onClick?: () => void; isLoading?: boolean; variant?: `${COUPON_PRIMARY_CTA_TYPE}`; }; descriptionCTA?: { label: string; onClick?: () => void; }; knowMoreCTA?: { label: string; onClicked?: () => void; knowMoreDescription?: { heading: string; description: string[]; readMoreCTA?: { label: string; onClick?: () => void; }; }; }; } export interface IGvListItem { prefixIcon: React.ReactNode; gvCode: string; amountRedeemed: string; primaryCTA: { label: string; onClick?: () => void; isLoading?: boolean; }; } export interface ICouponAndGVCommponProps { tabId: string; tabTitle: string; infoCallout?: ICouponAndGVCallout; } export interface ICouponFilterItem { id: string; label: string; selected?: boolean; } export interface ICouponFilters { onFilterClick?: (id: string) => void; onFilterClicked?: (id: string) => void; filters: ICouponFilterItem[]; } export interface ICoupon extends ICouponAndGVCommponProps { couponField: ICouponAndGvField; couponFilters?: ICouponFilters; couponList?: ICouponListItem[]; knowMoreCTA?: { label: string; suffixIcon?: React.ReactNode; onClick?: () => void; }; } export interface IFieldMetaData { max?: number; } export interface IGiftVoucher extends ICouponAndGVCommponProps { gvField: Omit & IFieldMetaData; pinField: Omit & IFieldMetaData; gvApplyCTA: { label: string; onClick?: () => void; isLoading?: boolean; disabled?: boolean; }; gvList?: IGvListItem[]; } export interface ICouponAndGv { heading?: string; activeTabId?: string; discountCallout?: ICouponAndGVCallout; onTabChange?: (tabId: string | number) => void; coupon?: ICoupon; gv: IGiftVoucher; } //# sourceMappingURL=type.d.ts.map