import { Company } from "./Company"; import { ExpiringOAuthResponse } from "./Authentication"; import { Category } from "./Category"; import { Dayjs } from "dayjs"; import { ProfitAndLossData } from "./ProfitAndLoss"; import { ProfitAndLossDataYearly } from "./ProfitAndLoss"; import { RevenueProfitExpenseResponse } from "./revenueprofitexpenseResponse"; export type AccelContextValues = { auth: ExpiringOAuthResponse; authErrorState: boolean; companyId: string; company?: Company; categories: Category[]; apiUrl: string; theme?: AccelThemeConfigColors; usePlaidSandbox?: boolean; onboardingStep?: OnboardingStep; environment: string; selectedDate: Dayjs; dispatcher: React.Dispatch; profitandloss?: ProfitAndLossData; fillerData: boolean; generalLedger?: Record; incomeStatementSheet?: Record; profitandlossYearly?: ProfitAndLossDataYearly[]; revenueProfitExpense?: RevenueProfitExpenseResponse; transactionsByMonth?: Record; }; export type AccelContextHelpers = { getColor: (shade: number) => ColorsPaletteOption | undefined; setLightColor: (color?: ColorConfig) => void; setDarkColor: (color?: ColorConfig) => void; setTextColor: (color?: ColorConfig) => void; setColors: (colors?: AccelThemeConfigColors) => void; }; export interface ColorHSLConfig { h: string; s: string; l: string; } export interface ColorHSLNumberConfig { h: number; s: number; l: number; } export interface ColorRGBConfig { r: string; g: string; b: string; } export interface ColorRGBNumberConfig { r: number; g: number; b: number; } export interface ColorHexConfig { hex: string; } export type ColorConfig = ColorHSLConfig | ColorRGBConfig | ColorHexConfig; export interface ColorsPaletteOption { hsl: ColorHSLNumberConfig; rgb: ColorRGBNumberConfig; hex: string; } export type ColorsPalette = Record; export interface AccelThemeConfigColors { primary?: ColorHexConfig; secondary?: ColorHexConfig; accent?: ColorHexConfig; background?: ColorHexConfig; text?: ColorHexConfig; positive?: ColorHexConfig; negative?: ColorHexConfig; isDarkMode?: boolean; darkMode?: { background?: ColorHexConfig; accent?: ColorHexConfig; text?: ColorHexConfig; }; } export interface AccelThemeConfig { colors?: AccelThemeConfigColors; } export type OnboardingStep = undefined | "connectAccount" | "complete"; export declare enum AccelContextActionName { setAuth = "AccelContext.setAuth", setCompany = "AccelContext.setCompany", setCategories = "AccelContext.setCategories", setTheme = "AccelContext.setTheme", setOnboardingStep = "AccelContext.setOnboardingStep", setSelectedDate = "AccelContext.setSelectedDate", setProfitAndLoss = "AccelContext.setProfitAndLoss", setFillerData = "setFillerData",// Added action name for fillerData setGeneralLedger = "setGeneralLedger", setProfitAndLossSheet = "setProfitAndLossSheet", setIncomeStatementSheet = "setIncomeStatementSheet", setProfitAndLossYearly = "setProfitAndLossYearly", setRevenueProfitExpense = "setRevenueProfitExpense", setTransactionsByMonth = "setTransactionsByMonth" } export type AccelContextAction = { type: AccelContextActionName.setAuth; payload: { auth: AccelContextValues["auth"]; }; } | { type: AccelContextActionName.setCompany; payload: { company: AccelContextValues["company"]; }; } | { type: AccelContextActionName.setCategories; payload: { categories: AccelContextValues["categories"]; }; } | { type: AccelContextActionName.setTheme; payload: { theme: AccelContextValues["theme"]; }; } | { type: AccelContextActionName.setOnboardingStep; payload: { onboardingStep: AccelContextValues["onboardingStep"]; }; } | { type: AccelContextActionName.setSelectedDate; payload: { selectedDate: AccelContextValues["selectedDate"]; }; } | { type: AccelContextActionName.setProfitAndLoss; payload: { profitandloss: AccelContextValues["profitandloss"]; }; } | { type: AccelContextActionName.setFillerData; payload: { fillerData: boolean; }; } | { type: AccelContextActionName.setGeneralLedger; payload: { generalLedger: AccelContextValues["generalLedger"]; }; } | { type: AccelContextActionName.setIncomeStatementSheet; payload: { incomeStatementSheet: AccelContextValues["incomeStatementSheet"]; }; } | { type: AccelContextActionName.setProfitAndLossYearly; payload: { profitandlossYearly: AccelContextValues["profitandlossYearly"]; }; } | { type: AccelContextActionName.setRevenueProfitExpense; payload: { revenueProfitExpense: AccelContextValues["revenueProfitExpense"]; }; } | { type: AccelContextActionName.setTransactionsByMonth; payload: { transactionsByMonth: AccelContextValues["transactionsByMonth"]; }; };