import { CardsPromoClickType, ReferrerType } from '@zeniai/client-analytics'; import { AccountingMethod, BillTab, BillsSubTabType, COABalanceTimeFrame, FetchState, ID, RemiSubTabType, RemiTabType, ReportID, TimeSpanIdForAverage, TopExTimePeriod } from '@zeniai/client-epic-state'; export type CardType = ReportID | "information_card" | "zeni_promo_card" | "expense_automation_card" | "rewards_card" | "treasury_promo_card" | "ai_cfo_dashboard_card"; export declare class CardData { dimension: CardDimension; cardIndex: number; cardType: CardType; fetchState: FetchState; disableAnimations: boolean; /** When true, the card spans the full dashboard row (all columns), not a single column. */ spansFullDashboardWidth: boolean; constructor(dimension: CardDimension, cardIndex: number, cardType: CardType, fetchState: FetchState, disableAnimations?: boolean, /** When true, the card spans the full dashboard row (all columns), not a single column. */ spansFullDashboardWidth?: boolean); } /** Note that card dimensions should be numbers representing absolute pixels. * Do not use percentage * Do not use 'px' suffix */ export declare class CardDimension { width: number; height: number; marginTop: number; marginRight: number; marginBottom: number; marginLeft: number; constructor(width: number, height: number, marginTop: number, marginRight: number, marginBottom: number, marginLeft: number); /** Dimension in css units */ get widthCss(): string; get heightCss(): string; get marginTopCss(): string; get marginRightCss(): string; get marginBottomCss(): string; get marginLeftCss(): string; /** * returns total width including the horizontal margins */ get totalWidth(): number; set totalWidth(totalWidth: number); /** * returns total height including the vertical margins */ get totalHeight(): number; set totalHeight(totalHeight: number); } export type CardAction = (cardIndex: number, cardType: CardType, referrer?: ReferrerType, clickType?: CardsPromoClickType) => void; export type BalanceTimeframe = COABalanceTimeFrame | TopExTimePeriod; export interface CardActions { onCardClick: CardAction; onReloadData: CardAction; onCloseClick?: CardAction; onCardBtnClick?: (type: CardType, targetId?: ID) => void; onCategoryClick?: (category: string, tab?: BillTab | RemiTabType, subTab?: BillsSubTabType | RemiSubTabType) => void; onDontShowAgainClick?: () => void; onIntroOutsideClick?: () => void; onRemindMeLaterClick?: () => void; onSaveClick?: (reportID: CardType, accountingMethod: AccountingMethod, timeSpanIdForAverage: TimeSpanIdForAverage) => void; onTimeframeChange?: (reportID: CardType, newTimeframe: BalanceTimeframe) => void; onUpdateSelectedInsightIndex?: (targetIndex: number) => void; onVideoPlay?: () => void; }