@layerfi/components 0.1.102-alpha.2 → 0.1.102-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -16,6 +16,10 @@ declare module '@layerfi/components/api/layer/authenticated_http' {
16
16
  params?: Params;
17
17
  body?: Body;
18
18
  }) => Promise<Return>;
19
+ export const del: <Return extends Record<string, unknown> = Record<string, unknown>, Body extends Record<string, unknown> = Record<string, unknown>, Params extends Record<string, string | undefined> = Record<string, string | undefined>>(url: (params: Params) => string) => (baseUrl: string, accessToken: string | undefined, options?: {
20
+ params?: Params;
21
+ body?: Body;
22
+ }) => Promise<Return>;
19
23
  export const postWithFormData: <Return extends Record<string, unknown> = Record<string, unknown>>(url: string, formData: FormData, baseUrl: string, accessToken: string | undefined) => Promise<Return>;
20
24
 
21
25
  }
@@ -151,7 +155,7 @@ declare module '@layerfi/components/api/layer/bankTransactions' {
151
155
  }
152
156
  declare module '@layerfi/components/api/layer/bills' {
153
157
  import { Metadata } from '@layerfi/components/types';
154
- import { Bill, BillPayment } from '@layerfi/components/types/bills';
158
+ import { Bill, BillLineItem, BillPayment, SalesTax } from '@layerfi/components/types/bills';
155
159
  export type GetBillsReturn = {
156
160
  data?: Bill[];
157
161
  meta?: Metadata;
@@ -165,6 +169,16 @@ declare module '@layerfi/components/api/layer/bills' {
165
169
  status?: string;
166
170
  vendorId?: string;
167
171
  }
172
+ export type SaveBillPayload = {
173
+ bill_number?: string;
174
+ terms?: string;
175
+ due_at?: string;
176
+ received_at?: string;
177
+ vendor_id?: string;
178
+ vendor_external_id?: string;
179
+ sales_taxes?: SalesTax[];
180
+ line_items?: Partial<BillLineItem>[];
181
+ };
168
182
  export const getBills: (baseUrl: string, accessToken: string | undefined, options?: {
169
183
  params?: GetBillsParams | undefined;
170
184
  } | undefined) => () => Promise<GetBillsReturn>;
@@ -178,7 +192,13 @@ declare module '@layerfi/components/api/layer/bills' {
178
192
  }>;
179
193
  export const updateBill: (baseUrl: string, accessToken: string | undefined, options?: {
180
194
  params?: Record<string, string | undefined> | undefined;
181
- body?: Record<string, unknown> | undefined;
195
+ body?: SaveBillPayload | undefined;
196
+ } | undefined) => Promise<{
197
+ data: Bill;
198
+ }>;
199
+ export const createBill: (baseUrl: string, accessToken: string | undefined, options?: {
200
+ params?: Record<string, string | undefined> | undefined;
201
+ body?: SaveBillPayload | undefined;
182
202
  } | undefined) => Promise<{
183
203
  data: Bill;
184
204
  }>;
@@ -364,15 +384,13 @@ declare module '@layerfi/components/api/layer/linked_accounts' {
364
384
  } | undefined;
365
385
  body?: ({
366
386
  is_unique: true;
367
- } & Partial<{
368
- is_unique: boolean;
369
- is_relevant: boolean;
370
- }> & {}) | ({
387
+ } & {
388
+ is_relevant?: undefined;
389
+ }) | ({
371
390
  is_relevant: true;
372
- } & Partial<{
373
- is_unique: boolean;
374
- is_relevant: boolean;
375
- }> & {}) | undefined;
391
+ } & {
392
+ is_unique?: undefined;
393
+ }) | undefined;
376
394
  } | undefined) => Promise<never>;
377
395
  export const excludeAccount: (baseUrl: string, accessToken: string | undefined, options?: {
378
396
  params?: {
@@ -381,15 +399,13 @@ declare module '@layerfi/components/api/layer/linked_accounts' {
381
399
  } | undefined;
382
400
  body?: ({
383
401
  is_irrelevant: true;
384
- } & Partial<{
385
- is_irrelevant: boolean;
386
- is_duplicate: boolean;
387
- }> & {}) | ({
402
+ } & {
403
+ is_duplicate?: undefined;
404
+ }) | ({
388
405
  is_duplicate: true;
389
- } & Partial<{
390
- is_irrelevant: boolean;
391
- is_duplicate: boolean;
392
- }> & {}) | undefined;
406
+ } & {
407
+ is_irrelevant?: undefined;
408
+ }) | undefined;
393
409
  } | undefined) => Promise<never>;
394
410
  export const unlinkConnection: (baseUrl: string, accessToken: string | undefined, options?: {
395
411
  params?: {
@@ -723,13 +739,19 @@ declare module '@layerfi/components/api/layer' {
723
739
  billId: string;
724
740
  } | undefined;
725
741
  } | undefined) => () => Promise<{
726
- data: import("@layerfi/components/types/bills").Bill;
742
+ data: import("@layerfi/components/types").Bill;
743
+ }>;
744
+ createBill: (baseUrl: string, accessToken: string | undefined, options?: {
745
+ params?: Record<string, string | undefined> | undefined;
746
+ body?: import("@layerfi/components/api/layer/bills").SaveBillPayload | undefined;
747
+ } | undefined) => Promise<{
748
+ data: import("@layerfi/components/types").Bill;
727
749
  }>;
728
750
  updateBill: (baseUrl: string, accessToken: string | undefined, options?: {
729
751
  params?: Record<string, string | undefined> | undefined;
730
- body?: Record<string, unknown> | undefined;
752
+ body?: import("@layerfi/components/api/layer/bills").SaveBillPayload | undefined;
731
753
  } | undefined) => Promise<{
732
- data: import("@layerfi/components/types/bills").Bill;
754
+ data: import("@layerfi/components/types").Bill;
733
755
  }>;
734
756
  createBillPayment: (baseUrl: string, accessToken: string | undefined, options?: {
735
757
  params?: Record<string, string | undefined> | undefined;
@@ -905,15 +927,13 @@ declare module '@layerfi/components/api/layer' {
905
927
  } | undefined;
906
928
  body?: ({
907
929
  is_unique: true;
908
- } & Partial<{
909
- is_unique: boolean;
910
- is_relevant: boolean;
911
- }> & {}) | ({
930
+ } & {
931
+ is_relevant?: undefined;
932
+ }) | ({
912
933
  is_relevant: true;
913
- } & Partial<{
914
- is_unique: boolean;
915
- is_relevant: boolean;
916
- }> & {}) | undefined;
934
+ } & {
935
+ is_unique?: undefined;
936
+ }) | undefined;
917
937
  } | undefined) => Promise<never>;
918
938
  excludeAccount: (baseUrl: string, accessToken: string | undefined, options?: {
919
939
  params?: {
@@ -922,15 +942,13 @@ declare module '@layerfi/components/api/layer' {
922
942
  } | undefined;
923
943
  body?: ({
924
944
  is_irrelevant: true;
925
- } & Partial<{
926
- is_irrelevant: boolean;
927
- is_duplicate: boolean;
928
- }> & {}) | ({
945
+ } & {
946
+ is_duplicate?: undefined;
947
+ }) | ({
929
948
  is_duplicate: true;
930
- } & Partial<{
931
- is_irrelevant: boolean;
932
- is_duplicate: boolean;
933
- }> & {}) | undefined;
949
+ } & {
950
+ is_irrelevant?: undefined;
951
+ }) | undefined;
934
952
  } | undefined) => Promise<never>;
935
953
  breakPlaidItemConnection: (baseUrl: string, accessToken: string | undefined, options?: {
936
954
  params?: {
@@ -1206,12 +1224,12 @@ declare module '@layerfi/components/components/BankTransactionList/BankTransacti
1206
1224
  editable: boolean;
1207
1225
  containerWidth: number;
1208
1226
  removeTransaction: (bt: BankTransaction) => void;
1209
- showDescriptions?: boolean;
1210
- showReceiptUploads?: boolean;
1211
- showTooltips: boolean;
1212
1227
  stringOverrides?: BankTransactionCTAStringOverrides;
1228
+ showDescriptions: boolean;
1229
+ showReceiptUploads: boolean;
1230
+ showTooltips: boolean;
1213
1231
  }
1214
- export const BankTransactionList: ({ bankTransactions, editable, removeTransaction, containerWidth, showDescriptions, showReceiptUploads, showTooltips, stringOverrides, }: BankTransactionListProps) => import("react/jsx-runtime").JSX.Element;
1232
+ export const BankTransactionList: ({ bankTransactions, editable, removeTransaction, containerWidth, stringOverrides, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionListProps) => import("react/jsx-runtime").JSX.Element;
1215
1233
  export {};
1216
1234
 
1217
1235
  }
@@ -1223,14 +1241,14 @@ declare module '@layerfi/components/components/BankTransactionList/BankTransacti
1223
1241
  dateFormat: string;
1224
1242
  bankTransaction: BankTransaction;
1225
1243
  editable: boolean;
1226
- showDescriptions: boolean;
1227
- showReceiptUploads: boolean;
1228
- showTooltips: boolean;
1229
1244
  removeTransaction: (bt: BankTransaction) => void;
1230
1245
  containerWidth?: number;
1231
1246
  stringOverrides?: BankTransactionCTAStringOverrides;
1247
+ showDescriptions: boolean;
1248
+ showReceiptUploads: boolean;
1249
+ showTooltips: boolean;
1232
1250
  };
1233
- export const BankTransactionListItem: ({ index, dateFormat, bankTransaction, editable, showDescriptions, showReceiptUploads, showTooltips, containerWidth, removeTransaction, stringOverrides, }: Props) => import("react/jsx-runtime").JSX.Element;
1251
+ export const BankTransactionListItem: ({ index, dateFormat, bankTransaction, editable, containerWidth, removeTransaction, stringOverrides, showDescriptions, showReceiptUploads, showTooltips, }: Props) => import("react/jsx-runtime").JSX.Element;
1234
1252
  export {};
1235
1253
 
1236
1254
  }
@@ -1246,13 +1264,13 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1246
1264
  import { BankTransaction } from '@layerfi/components/types';
1247
1265
  import { Purpose } from '@layerfi/components/components/BankTransactionMobileList/BankTransactionMobileListItem';
1248
1266
  interface BankTransactionMobileFormsProps {
1267
+ isOpen?: boolean;
1249
1268
  purpose: Purpose;
1250
1269
  bankTransaction: BankTransaction;
1251
- showTooltips: boolean;
1252
1270
  showCategorization?: boolean;
1253
- showReceiptUploads?: boolean;
1254
- showDescriptions?: boolean;
1255
- isOpen?: boolean;
1271
+ showDescriptions: boolean;
1272
+ showReceiptUploads: boolean;
1273
+ showTooltips: boolean;
1256
1274
  }
1257
1275
  export const BankTransactionMobileForms: ({ purpose, bankTransaction, showTooltips, showCategorization, showReceiptUploads, showDescriptions, isOpen, }: BankTransactionMobileFormsProps) => import("react/jsx-runtime").JSX.Element;
1258
1276
  export {};
@@ -1265,11 +1283,11 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1265
1283
  editable: boolean;
1266
1284
  removeTransaction: (bt: BankTransaction) => void;
1267
1285
  initialLoad?: boolean;
1286
+ showDescriptions: boolean;
1287
+ showReceiptUploads: boolean;
1268
1288
  showTooltips: boolean;
1269
- showReceiptUploads?: boolean;
1270
- showDescriptions?: boolean;
1271
1289
  }
1272
- export const BankTransactionMobileList: ({ bankTransactions, removeTransaction, editable, initialLoad, showTooltips, showReceiptUploads, showDescriptions, }: BankTransactionMobileListProps) => import("react/jsx-runtime").JSX.Element;
1290
+ export const BankTransactionMobileList: ({ bankTransactions, removeTransaction, editable, initialLoad, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionMobileListProps) => import("react/jsx-runtime").JSX.Element;
1273
1291
 
1274
1292
  }
1275
1293
  declare module '@layerfi/components/components/BankTransactionMobileList/BankTransactionMobileListItem' {
@@ -1280,17 +1298,17 @@ declare module '@layerfi/components/components/BankTransactionMobileList/BankTra
1280
1298
  editable: boolean;
1281
1299
  removeTransaction: (bt: BankTransaction) => void;
1282
1300
  initialLoad?: boolean;
1283
- showTooltips: boolean;
1284
- showDescriptions?: boolean;
1285
- showReceiptUploads?: boolean;
1286
1301
  isFirstItem?: boolean;
1302
+ showDescriptions: boolean;
1303
+ showReceiptUploads: boolean;
1304
+ showTooltips: boolean;
1287
1305
  }
1288
1306
  export enum Purpose {
1289
1307
  business = "business",
1290
1308
  personal = "personal",
1291
1309
  more = "more"
1292
1310
  }
1293
- export const BankTransactionMobileListItem: ({ index, bankTransaction, removeTransaction, editable, initialLoad, showTooltips, isFirstItem, showDescriptions, showReceiptUploads, }: BankTransactionMobileListItemProps) => import("react/jsx-runtime").JSX.Element;
1311
+ export const BankTransactionMobileListItem: ({ index, bankTransaction, removeTransaction, editable, initialLoad, isFirstItem, showDescriptions, showReceiptUploads, showTooltips, }: BankTransactionMobileListItemProps) => import("react/jsx-runtime").JSX.Element;
1294
1312
 
1295
1313
  }
1296
1314
  declare module '@layerfi/components/components/BankTransactionMobileList/BusinessCategories' {
@@ -1307,12 +1325,12 @@ declare module '@layerfi/components/components/BankTransactionMobileList/Busines
1307
1325
  import { BankTransaction } from '@layerfi/components/types';
1308
1326
  interface BusinessFormProps {
1309
1327
  bankTransaction: BankTransaction;
1310
- showTooltips: boolean;
1311
1328
  showCategorization?: boolean;
1312
- showReceiptUploads?: boolean;
1313
- showDescriptions?: boolean;
1329
+ showDescriptions: boolean;
1330
+ showReceiptUploads: boolean;
1331
+ showTooltips: boolean;
1314
1332
  }
1315
- export const BusinessForm: ({ bankTransaction, showTooltips, showCategorization, showReceiptUploads, showDescriptions, }: BusinessFormProps) => import("react/jsx-runtime").JSX.Element;
1333
+ export const BusinessForm: ({ bankTransaction, showCategorization, showDescriptions, showReceiptUploads, showTooltips, }: BusinessFormProps) => import("react/jsx-runtime").JSX.Element;
1316
1334
  export {};
1317
1335
 
1318
1336
  }
@@ -1553,8 +1571,9 @@ declare module '@layerfi/components/components/BankTransactions/BankTransactions
1553
1571
  }
1554
1572
  export interface BankTransactionsWithErrorProps extends BankTransactionsProps {
1555
1573
  onError?: (error: LayerError) => void;
1574
+ showTags?: boolean;
1556
1575
  }
1557
- export const BankTransactions: ({ onError, mode, ...props }: BankTransactionsWithErrorProps) => import("react/jsx-runtime").JSX.Element;
1576
+ export const BankTransactions: ({ onError, showTags, mode, ...props }: BankTransactionsWithErrorProps) => import("react/jsx-runtime").JSX.Element;
1558
1577
 
1559
1578
  }
1560
1579
  declare module '@layerfi/components/components/BankTransactions/BankTransactionsHeader' {
@@ -1602,10 +1621,6 @@ declare module '@layerfi/components/components/BankTransactions/constants' {
1602
1621
  export const CategorizedCategories: CategorizationStatus[];
1603
1622
  export const ReviewCategories: CategorizationStatus[];
1604
1623
 
1605
- }
1606
- declare module '@layerfi/components/components/BankTransactions/index' {
1607
- export { BankTransactions } from '@layerfi/components/components/BankTransactions/BankTransactions';
1608
-
1609
1624
  }
1610
1625
  declare module '@layerfi/components/components/BankTransactions/utils' {
1611
1626
  import { BankTransaction, DisplayState } from '@layerfi/components/types';
@@ -1642,8 +1657,8 @@ declare module '@layerfi/components/components/BankTransactionsTable/BankTransac
1642
1657
  isLoading?: boolean;
1643
1658
  containerWidth: number;
1644
1659
  removeTransaction: (bt: BankTransaction) => void;
1645
- showDescriptions?: boolean;
1646
- showReceiptUploads?: boolean;
1660
+ showDescriptions: boolean;
1661
+ showReceiptUploads: boolean;
1647
1662
  showTooltips: boolean;
1648
1663
  stringOverrides?: BankTransactionsStringOverrides;
1649
1664
  isSyncing?: boolean;
@@ -1654,6 +1669,186 @@ declare module '@layerfi/components/components/BankTransactionsTable/BankTransac
1654
1669
  export const BankTransactionsTable: ({ categorizeView, editable, isLoading, bankTransactions, containerWidth, removeTransaction, showDescriptions, showReceiptUploads, showTooltips, stringOverrides, isSyncing, page, lastPage, onRefresh, }: BankTransactionsTableProps) => import("react/jsx-runtime").JSX.Element;
1655
1670
  export {};
1656
1671
 
1672
+ }
1673
+ declare module '@layerfi/components/components/Bills/BillSummary' {
1674
+ import type { Bill } from '@layerfi/components/types';
1675
+ type BillSummaryProps = {
1676
+ bill: Bill;
1677
+ };
1678
+ export const BillSummary: ({ bill }: BillSummaryProps) => import("react/jsx-runtime").JSX.Element;
1679
+ export {};
1680
+
1681
+ }
1682
+ declare module '@layerfi/components/components/Bills/BillSummaryPaid' {
1683
+ import { Bill } from '@layerfi/components/types';
1684
+ type BillSummaryPaidProps = {
1685
+ bill: Bill;
1686
+ };
1687
+ export const BillSummaryPaid: ({ bill }: BillSummaryPaidProps) => import("react/jsx-runtime").JSX.Element;
1688
+ export {};
1689
+
1690
+ }
1691
+ declare module '@layerfi/components/components/Bills/BillSummaryUnpaid' {
1692
+ import { Bill } from '@layerfi/components/types';
1693
+ type BillSummaryUnpaidProps = {
1694
+ bill: Bill;
1695
+ };
1696
+ export const BillSummaryUnpaid: ({ bill }: BillSummaryUnpaidProps) => import("react/jsx-runtime").JSX.Element;
1697
+ export {};
1698
+
1699
+ }
1700
+ declare module '@layerfi/components/components/Bills/Bills' {
1701
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1702
+ export type BillsStringOverrides = {
1703
+ billsTable?: BillsTableStringOverrides;
1704
+ paidToggleOption?: string;
1705
+ unpaidToggleOption?: string;
1706
+ };
1707
+ export type BillsProps = {
1708
+ context?: boolean;
1709
+ asWidget?: boolean;
1710
+ stringOverrides?: BillsStringOverrides;
1711
+ };
1712
+ export const Bills: ({ context, ...props }: BillsProps) => import("react/jsx-runtime").JSX.Element;
1713
+
1714
+ }
1715
+ declare module '@layerfi/components/components/Bills/BillsDatePicker' {
1716
+ export const BillsDatePicker: () => import("react/jsx-runtime").JSX.Element;
1717
+
1718
+ }
1719
+ declare module '@layerfi/components/components/Bills/BillsDetails' {
1720
+ import { RefObject } from 'react';
1721
+ import type { Bill } from '@layerfi/components/types';
1722
+ export const BillsDetails: ({ bill, containerRef, }: {
1723
+ bill?: Bill;
1724
+ containerRef: RefObject<HTMLDivElement>;
1725
+ }) => import("react/jsx-runtime").JSX.Element;
1726
+
1727
+ }
1728
+ declare module '@layerfi/components/components/Bills/BillsList' {
1729
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1730
+ export const BillsList: ({ stringOverrides, }: {
1731
+ stringOverrides?: BillsTableStringOverrides;
1732
+ }) => import("react/jsx-runtime").JSX.Element;
1733
+
1734
+ }
1735
+ declare module '@layerfi/components/components/Bills/BillsPaymentRecorded' {
1736
+ export const BillsPaymentRecorded: ({ stringOverrides, }: {
1737
+ stringOverrides?: {
1738
+ header?: string;
1739
+ };
1740
+ }) => import("react/jsx-runtime").JSX.Element;
1741
+
1742
+ }
1743
+ declare module '@layerfi/components/components/Bills/BillsRecordPayment' {
1744
+ import { JournalFormStringOverrides } from '@layerfi/components/components/JournalForm/JournalForm';
1745
+ export const BillsRecordPayment: ({ stringOverrides, }: {
1746
+ stringOverrides?: JournalFormStringOverrides;
1747
+ }) => import("react/jsx-runtime").JSX.Element;
1748
+
1749
+ }
1750
+ declare module '@layerfi/components/components/Bills/BillsSidebar' {
1751
+ export const BillsSidebar: () => import("react/jsx-runtime").JSX.Element;
1752
+
1753
+ }
1754
+ declare module '@layerfi/components/components/Bills/BillsTable' {
1755
+ import { BillsTableStringOverrides } from '@layerfi/components/components/Bills/BillsTableWithPanel';
1756
+ export const BillsTable: ({ stringOverrides, }: {
1757
+ stringOverrides?: BillsTableStringOverrides;
1758
+ }) => import("react/jsx-runtime").JSX.Element;
1759
+
1760
+ }
1761
+ declare module '@layerfi/components/components/Bills/BillsTableLoader' {
1762
+ export const BillsTableLoader: () => import("react/jsx-runtime").JSX.Element;
1763
+
1764
+ }
1765
+ declare module '@layerfi/components/components/Bills/BillsTableWithPanel' {
1766
+ import { RefObject } from 'react';
1767
+ export type BillsTableStringOverrides = {
1768
+ componentTitle?: string;
1769
+ componentSubtitle?: string;
1770
+ vendorColumnHeader?: string;
1771
+ dueDateColumnHeader?: string;
1772
+ billAmountColumnHeader?: string;
1773
+ openBalanceColumnHeader?: string;
1774
+ statusColumnHeader?: string;
1775
+ paidToggleOption?: string;
1776
+ unpaidToggleOption?: string;
1777
+ recordPaymentButtonText?: string;
1778
+ };
1779
+ export const BillsTableWithPanel: ({ containerRef, stringOverrides, }: {
1780
+ containerRef: RefObject<HTMLDivElement>;
1781
+ stringOverrides?: BillsTableStringOverrides;
1782
+ }) => import("react/jsx-runtime").JSX.Element;
1783
+
1784
+ }
1785
+ declare module '@layerfi/components/components/Bills/useBillForm' {
1786
+ import { Bill, BillLineItem } from '@layerfi/components/types/bills';
1787
+ import { FormValidateOrFn, FormAsyncValidateOrFn } from '@tanstack/react-form';
1788
+ import { Vendor } from '@layerfi/components/types/vendors';
1789
+ export type BillForm = {
1790
+ bill_number?: string;
1791
+ vendor?: Vendor;
1792
+ vendor_address?: string;
1793
+ received_at?: string;
1794
+ due_at?: string;
1795
+ terms?: string;
1796
+ line_items?: (Partial<BillLineItem>)[];
1797
+ };
1798
+ export type EditableBill = Partial<Bill>;
1799
+ export const useBillForm: (bill?: EditableBill) => {
1800
+ form: import("@tanstack/react-form").ReactFormExtendedApi<BillForm, FormValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>, FormAsyncValidateOrFn<BillForm>>;
1801
+ isDirty: boolean;
1802
+ submitError: string | undefined;
1803
+ formErrorMap: import("@tanstack/react-form").FormValidationErrorMap<undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined>;
1804
+ };
1805
+
1806
+ }
1807
+ declare module '@layerfi/components/components/Bills/useBillsRecordPayment' {
1808
+ import { Bill, BillPaymentMethod } from '@layerfi/components/types/bills';
1809
+ import { Vendor } from '@layerfi/components/types/vendors';
1810
+ import { APIError } from '@layerfi/components/models/APIError';
1811
+ export type BillsRecordPaymentFormRecord = {
1812
+ bill?: Bill;
1813
+ amount?: string | null;
1814
+ };
1815
+ export const useBillsRecordPayment: ({ refetchAllBills }: {
1816
+ refetchAllBills?: () => void;
1817
+ }) => {
1818
+ billsToPay: BillsRecordPaymentFormRecord[];
1819
+ setBill: (bill: Bill, index: number) => void;
1820
+ addBill: (bill?: Bill) => void;
1821
+ removeBill: (bill: Bill) => void;
1822
+ removeBillByIndex: (index: number) => void;
1823
+ setAmount: (billId: string, amount: string) => void;
1824
+ setAmountByIndex: (index: number, amount?: string | null) => void;
1825
+ vendor: Vendor | undefined;
1826
+ setVendor: (newVendor?: Vendor) => void;
1827
+ paymentDate: Date;
1828
+ setPaymentDate: import("react").Dispatch<import("react").SetStateAction<Date>>;
1829
+ paymentMethod: BillPaymentMethod;
1830
+ setPaymentMethod: import("react").Dispatch<import("react").SetStateAction<BillPaymentMethod>>;
1831
+ showRecordPaymentForm: boolean;
1832
+ setShowRecordPaymentForm: import("react").Dispatch<import("react").SetStateAction<boolean>>;
1833
+ bulkSelectionActive: boolean;
1834
+ openBulkSelection: () => void;
1835
+ closeBulkSelection: () => void;
1836
+ recordPayment: () => Promise<void>;
1837
+ dataSaved: boolean;
1838
+ closeRecordPayment: () => void;
1839
+ clearRecordPaymentSelection: () => void;
1840
+ recordPaymentForBill: (bill: Bill) => void;
1841
+ payRemainingBalance: () => void;
1842
+ isLoading: boolean;
1843
+ apiError: APIError | undefined;
1844
+ };
1845
+
1846
+ }
1847
+ declare module '@layerfi/components/components/Bills/useUnpaidBillsByVendor' {
1848
+ export const useUnpaidBillsByVendor: ({ vendorId }: {
1849
+ vendorId?: string;
1850
+ }) => import("swr").SWRResponse<import("../../types").Bill[] | undefined, any, any>;
1851
+
1657
1852
  }
1658
1853
  declare module '@layerfi/components/components/BookkeepingStatus/BookkeepingStatus' {
1659
1854
  import { BookkeepingPeriodStatus } from '@layerfi/components/hooks/bookkeeping/periods/useBookkeepingPeriods';
@@ -1876,13 +2071,14 @@ declare module '@layerfi/components/components/Button/SubmitButton' {
1876
2071
  noIcon?: boolean;
1877
2072
  tooltip?: ButtonProps['tooltip'];
1878
2073
  withRetry?: boolean;
2074
+ iconAsPrimary?: boolean;
1879
2075
  }
1880
2076
  export enum SubmitAction {
1881
2077
  SAVE = "save",
1882
2078
  UPDATE = "update",
1883
2079
  UPLOAD = "upload"
1884
2080
  }
1885
- export const SubmitButton: ({ active, className, processing, disabled, error, children, action, noIcon, variant, withRetry, ...props }: SubmitButtonProps) => import("react/jsx-runtime").JSX.Element;
2081
+ export const SubmitButton: ({ active, className, processing, disabled, error, children, action, noIcon, variant, withRetry, iconAsPrimary, ...props }: SubmitButtonProps) => import("react/jsx-runtime").JSX.Element;
1886
2082
 
1887
2083
  }
1888
2084
  declare module '@layerfi/components/components/Button/SwitchButton' {
@@ -1937,13 +2133,14 @@ declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
1937
2133
  import { SuggestedMatch, type CategoryWithEntries } from '@layerfi/components/types/bank_transactions';
1938
2134
  type Props = {
1939
2135
  name?: string;
1940
- bankTransaction: BankTransaction;
2136
+ bankTransaction?: BankTransaction;
1941
2137
  value: CategoryOption | undefined;
1942
2138
  onChange: (newValue: CategoryOption) => void;
1943
2139
  disabled?: boolean;
1944
2140
  className?: string;
1945
2141
  showTooltips: boolean;
1946
2142
  excludeMatches?: boolean;
2143
+ hideMainCategories?: string[];
1947
2144
  asDrawer?: boolean;
1948
2145
  };
1949
2146
  export enum OptionActionType {
@@ -1973,7 +2170,7 @@ declare module '@layerfi/components/components/CategorySelect/CategorySelect' {
1973
2170
  type: "ExclusionNested";
1974
2171
  }) => CategoryOption;
1975
2172
  export const mapSuggestedMatchToOption: (record: SuggestedMatch) => CategoryOption;
1976
- export const CategorySelect: ({ bankTransaction, name, value, onChange, disabled, className, showTooltips, excludeMatches, asDrawer, }: Props) => import("react/jsx-runtime").JSX.Element;
2173
+ export const CategorySelect: ({ bankTransaction, name, value, onChange, disabled, className, showTooltips, excludeMatches, hideMainCategories, asDrawer, }: Props) => import("react/jsx-runtime").JSX.Element;
1977
2174
  export {};
1978
2175
 
1979
2176
  }
@@ -2270,7 +2467,7 @@ declare module '@layerfi/components/components/CsvUpload/types' {
2270
2467
  }> = {
2271
2468
  [K in keyof T]: PreviewCell<T[K]>;
2272
2469
  } & {
2273
- index: number;
2470
+ row: number;
2274
2471
  is_valid: boolean;
2275
2472
  };
2276
2473
  export type PreviewCsv<T extends {
@@ -2688,8 +2885,9 @@ declare module '@layerfi/components/components/Input/CreatableSelect' {
2688
2885
  onCreateOption?: (inputValue: string) => void;
2689
2886
  isValidNewOption?: CreatableProps<T, false, GroupBase<T>>['isValidNewOption'];
2690
2887
  formatCreateLabel?: (inputValue: string) => ReactNode;
2888
+ createOptionPosition?: 'first' | 'last';
2691
2889
  }
2692
- export const CreatableSelect: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, onCreateOption, isValidNewOption, formatCreateLabel, inputId, isLoading, isClearable, }: CreatableSelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2890
+ export const CreatableSelect: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, formatOptionLabel, onCreateOption, isValidNewOption, formatCreateLabel, inputId, isLoading, isClearable, createOptionPosition, }: CreatableSelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2693
2891
 
2694
2892
  }
2695
2893
  declare module '@layerfi/components/components/Input/FileInput' {
@@ -2782,7 +2980,8 @@ declare module '@layerfi/components/components/Input/PhoneInput' {
2782
2980
 
2783
2981
  }
2784
2982
  declare module '@layerfi/components/components/Input/Select' {
2785
- import { GroupBase, OptionsOrGroups } from 'react-select';
2983
+ import { type ReactNode } from 'react';
2984
+ import { FormatOptionLabelMeta, GroupBase, OptionsOrGroups } from 'react-select';
2786
2985
  export interface SelectProps<T> {
2787
2986
  name?: string;
2788
2987
  options?: OptionsOrGroups<T, GroupBase<T>>;
@@ -2796,8 +2995,9 @@ declare module '@layerfi/components/components/Input/Select' {
2796
2995
  errorMessage?: string;
2797
2996
  inputId?: string;
2798
2997
  isLoading?: boolean;
2998
+ formatOptionLabel?: (option: T, meta?: FormatOptionLabelMeta<T>) => ReactNode;
2799
2999
  }
2800
- export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, inputId, isLoading, }: SelectProps<T>) => import("react/jsx-runtime").JSX.Element;
3000
+ export const Select: <T>({ name, options, className, classNamePrefix, value, onChange, disabled, placeholder, isInvalid, errorMessage, inputId, isLoading, formatOptionLabel, }: SelectProps<T>) => import("react/jsx-runtime").JSX.Element;
2801
3001
 
2802
3002
  }
2803
3003
  declare module '@layerfi/components/components/Input/StaticValue' {
@@ -4650,13 +4850,24 @@ declare module '@layerfi/components/components/UploadTransactions/UploadTransact
4650
4850
  export function UploadTransactions({ onComplete }: UploadTransactionsProps): import("react/jsx-runtime").JSX.Element;
4651
4851
  export {};
4652
4852
 
4853
+ }
4854
+ declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsConfirmationStep' {
4855
+ type UploadTransactionsConfirmationStepProps = {
4856
+ onRestartFlow: () => void;
4857
+ uploadedTransactionsCount: number;
4858
+ };
4859
+ export function UploadTransactionsConfirmationStep({ onRestartFlow, uploadedTransactionsCount }: UploadTransactionsConfirmationStepProps): import("react/jsx-runtime").JSX.Element;
4860
+ export {};
4861
+
4653
4862
  }
4654
4863
  declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsUploadCsvStep' {
4864
+ import type { CustomAccount } from '@layerfi/components/hooks/customAccounts/types';
4655
4865
  import { type CustomAccountParseCsvResponse } from '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv';
4656
- type AccountOption = {
4866
+ export type AccountOption = {
4657
4867
  value: string;
4658
4868
  label: string;
4659
- createdAccountName?: string;
4869
+ account: Partial<CustomAccount> & Pick<CustomAccount, 'accountName'>;
4870
+ __isNew__?: true;
4660
4871
  };
4661
4872
  interface UploadTransactionsUploadCsvStepProps {
4662
4873
  selectedAccount: AccountOption | null;
@@ -4671,13 +4882,14 @@ declare module '@layerfi/components/components/UploadTransactions/UploadTransact
4671
4882
  }
4672
4883
  declare module '@layerfi/components/components/UploadTransactions/UploadTransactionsValidateCsvStep' {
4673
4884
  import type { CustomAccountParseCsvResponse } from '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv';
4885
+ import { BankTransaction } from '@layerfi/components/types';
4674
4886
  interface UploadTransactionsValidateCsvStepProps {
4675
- parseCsvResponse: CustomAccountParseCsvResponse;
4676
- selectedAccountId: string;
4677
- onGoBack: () => void;
4678
- onReupload: () => void;
4887
+ parseCsvResponse: CustomAccountParseCsvResponse | null;
4888
+ selectedAccountId?: string;
4889
+ onSelectFile: (file: File | null) => void;
4890
+ onUploadTransactionsSuccess: (transactions: BankTransaction[]) => void;
4679
4891
  }
4680
- export function UploadTransactionsValidateCsvStep({ parseCsvResponse, selectedAccountId, onGoBack, onReupload }: UploadTransactionsValidateCsvStepProps): import("react/jsx-runtime").JSX.Element;
4892
+ export function UploadTransactionsValidateCsvStep({ parseCsvResponse, selectedAccountId, onSelectFile, onUploadTransactionsSuccess }: UploadTransactionsValidateCsvStepProps): import("react/jsx-runtime").JSX.Element;
4681
4893
  export {};
4682
4894
 
4683
4895
  }
@@ -4688,6 +4900,14 @@ declare module '@layerfi/components/components/UploadTransactions/template' {
4688
4900
  };
4689
4901
  export const templateExampleTransactions: CustomAccountTransactionRow[];
4690
4902
 
4903
+ }
4904
+ declare module '@layerfi/components/components/UploadTransactions/types' {
4905
+ export enum UploadTransactionsStep {
4906
+ UploadCsv = 0,
4907
+ ValidateCsv = 1,
4908
+ Confirmation = 2
4909
+ }
4910
+
4691
4911
  }
4692
4912
  declare module '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar' {
4693
4913
  interface BookkeepingUpsellBarProps {
@@ -4701,6 +4921,21 @@ declare module '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar
4701
4921
  declare module '@layerfi/components/components/UpsellBanner/index' {
4702
4922
  export { BookkeepingUpsellBar } from '@layerfi/components/components/UpsellBanner/BookkeepingUpsellBar';
4703
4923
 
4924
+ }
4925
+ declare module '@layerfi/components/components/Vendors/SelectVendor' {
4926
+ import { Vendor } from '@layerfi/components/types/vendors';
4927
+ type SelectVendorProps = {
4928
+ value: Vendor | null;
4929
+ onChange: (value: Vendor | null) => void;
4930
+ disabled?: boolean;
4931
+ placeholder?: string;
4932
+ withContext?: boolean;
4933
+ isInvalid?: boolean;
4934
+ errorMessage?: string;
4935
+ };
4936
+ export const SelectVendor: ({ withContext, ...props }: SelectVendorProps) => import("react/jsx-runtime").JSX.Element;
4937
+ export {};
4938
+
4704
4939
  }
4705
4940
  declare module '@layerfi/components/components/View/View' {
4706
4941
  import { ReactNode } from 'react';
@@ -4742,15 +4977,17 @@ declare module '@layerfi/components/components/Wizard/Wizard' {
4742
4977
  import { type PropsWithChildren, type ReactNode } from 'react';
4743
4978
  import type { Awaitable } from '@layerfi/components/types/utility/promises';
4744
4979
  export function useWizard(): {
4745
- next: () => Promise<void>;
4980
+ next: () => Awaitable<void>;
4746
4981
  previous: () => void;
4982
+ goToStep: (stepIndex: number) => void;
4747
4983
  };
4748
4984
  type WizardProps = PropsWithChildren<{
4749
4985
  Header: ReactNode;
4750
4986
  Footer: ReactNode;
4751
4987
  onComplete?: () => Awaitable<void>;
4988
+ onStepChange?: (stepIndex: number) => void;
4752
4989
  }>;
4753
- export function Wizard({ Header, Footer, onComplete, children, }: WizardProps): import("react/jsx-runtime").JSX.Element;
4990
+ export function Wizard({ Header, Footer, onComplete, onStepChange, children, }: WizardProps): import("react/jsx-runtime").JSX.Element;
4754
4991
  export {};
4755
4992
 
4756
4993
  }
@@ -4825,6 +5062,53 @@ declare module '@layerfi/components/components/ui/DropdownMenu/DropdownMenu' {
4825
5062
  export const DropdownMenu: ({ children, ariaLabel, slots, slotProps }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
4826
5063
  export {};
4827
5064
 
5065
+ }
5066
+ declare module '@layerfi/components/components/ui/Input/Input' {
5067
+ import { type ComponentProps } from 'react';
5068
+ import { Input as ReactAriaInput } from 'react-aria-components';
5069
+ type InputProps = Omit<ComponentProps<typeof ReactAriaInput>, 'className'> & {
5070
+ placement?: 'first-within-group';
5071
+ };
5072
+ export const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
5073
+ export {};
5074
+
5075
+ }
5076
+ declare module '@layerfi/components/components/ui/ListBox/ListBox' {
5077
+ import { type ForwardedRef, type Ref } from 'react';
5078
+ import { type ListBoxProps as ReactAriaListBoxProps, type ListBoxItemProps as ReactAriaListBoxItemProps, type ListBoxSectionProps as ReactAriaListBoxSectionProps } from 'react-aria-components';
5079
+ type ListBoxProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxProps<T>, 'className'>;
5080
+ function InternalListBox<T extends Record<string, unknown>>(props: ListBoxProps<T>, ref: React.ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5081
+ export const ListBox: <T extends Record<string, unknown>>(props: ListBoxProps<T> & {
5082
+ ref?: Ref<HTMLDivElement>;
5083
+ }) => ReturnType<typeof InternalListBox>;
5084
+ type ListBoxSectionProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxSectionProps<T>, 'className'>;
5085
+ function InternalListBoxSection<T extends Record<string, unknown>>(props: ListBoxSectionProps<T>, ref: ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5086
+ export const ListBoxSection: <T extends Record<string, unknown>>(props: ListBoxSectionProps<T> & {
5087
+ ref?: Ref<HTMLDivElement>;
5088
+ }) => ReturnType<typeof InternalListBoxSection>;
5089
+ export const ListBoxSectionHeader: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, "id" | "slot"> & {
5090
+ nonAria?: true;
5091
+ } & {
5092
+ align?: "center";
5093
+ ellipsis?: true;
5094
+ noWrap?: true;
5095
+ pb?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5096
+ pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5097
+ pbs?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
5098
+ size?: "xs" | "sm" | "md" | "lg";
5099
+ status?: "error";
5100
+ variant?: "subtle";
5101
+ weight?: "normal" | "bold";
5102
+ } & {
5103
+ children?: import("react").ReactNode | undefined;
5104
+ } & import("react").RefAttributes<HTMLElement>, "slot">, "ref"> & import("react").RefAttributes<HTMLElement>>;
5105
+ type ListBoxItemProps<T extends Record<string, unknown>> = Omit<ReactAriaListBoxItemProps<T>, 'className'>;
5106
+ function InternalListBoxItem<T extends Record<string, unknown>>(props: ListBoxItemProps<T>, ref?: ForwardedRef<T>): import("react/jsx-runtime").JSX.Element;
5107
+ export const ListBoxItem: <T extends Record<string, unknown>>(props: ListBoxItemProps<T> & {
5108
+ ref?: Ref<T>;
5109
+ }) => ReturnType<typeof InternalListBoxItem>;
5110
+ export {};
5111
+
4828
5112
  }
4829
5113
  declare module '@layerfi/components/components/ui/Loading/LoadingSpinner' {
4830
5114
  import { type LucideProps } from 'lucide-react';
@@ -4871,15 +5155,22 @@ declare module '@layerfi/components/components/ui/Modal/ModalSlots' {
4871
5155
  align?: "center";
4872
5156
  pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4873
5157
  size?: "2xs" | "xs" | "sm" | "lg";
5158
+ variant?: "subtle";
5159
+ weight?: "normal" | "bold";
4874
5160
  }, "ref"> & import("react").RefAttributes<HTMLHeadingElement>, "slot" | "level">, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
4875
- export const ModalDescription: import("react").ForwardRefExoticComponent<Omit<Omit<{
4876
- slot?: string | undefined | undefined;
5161
+ export const ModalDescription: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "id" | "slot"> & {
5162
+ nonAria?: true;
4877
5163
  } & {
4878
5164
  align?: "center";
5165
+ ellipsis?: true;
5166
+ noWrap?: true;
5167
+ pb?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4879
5168
  pbe?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4880
5169
  pbs?: import("@layerfi/components/components/ui/sharedUITypes").Spacing;
4881
5170
  size?: "xs" | "sm" | "md" | "lg";
5171
+ status?: "error";
4882
5172
  variant?: "subtle";
5173
+ weight?: "normal" | "bold";
4883
5174
  } & {
4884
5175
  children?: import("react").ReactNode | undefined;
4885
5176
  } & import("react").RefAttributes<HTMLParagraphElement>, "slot">, "ref"> & import("react").RefAttributes<HTMLParagraphElement>>;
@@ -4896,6 +5187,13 @@ declare module '@layerfi/components/components/ui/Pill/Pill' {
4896
5187
  } & import("react").RefAttributes<HTMLButtonElement>>;
4897
5188
  export {};
4898
5189
 
5190
+ }
5191
+ declare module '@layerfi/components/components/ui/Popover/Popover' {
5192
+ import { PopoverProps as ReactAriaPopoverProps } from 'react-aria-components';
5193
+ type PopoverProps = Omit<ReactAriaPopoverProps, 'className'>;
5194
+ export const Popover: import("react").ForwardRefExoticComponent<PopoverProps & import("react").RefAttributes<HTMLElement>>;
5195
+ export {};
5196
+
4899
5197
  }
4900
5198
  declare module '@layerfi/components/components/ui/SearchField/MinimalSearchField' {
4901
5199
  import { type SearchFieldProps as ReactAriaSearchFieldProps } from 'react-aria-components';
@@ -4905,6 +5203,16 @@ declare module '@layerfi/components/components/ui/SearchField/MinimalSearchField
4905
5203
  export function MinimalSearchField({ placeholder, ...restProps }: MinimalSearchFieldProps): import("react/jsx-runtime").JSX.Element;
4906
5204
  export {};
4907
5205
 
5206
+ }
5207
+ declare module '@layerfi/components/components/ui/Square/Square' {
5208
+ type SquareProps = {
5209
+ size?: 'sm';
5210
+ };
5211
+ export const Square: import("react").ForwardRefExoticComponent<SquareProps & {
5212
+ children?: import("react").ReactNode | undefined;
5213
+ } & import("react").RefAttributes<HTMLDivElement>>;
5214
+ export {};
5215
+
4908
5216
  }
4909
5217
  declare module '@layerfi/components/components/ui/Stack/Stack' {
4910
5218
  import { type PropsWithChildren } from 'react';
@@ -4912,9 +5220,11 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
4912
5220
  export type StackProps = PropsWithChildren<{
4913
5221
  align?: 'start' | 'center';
4914
5222
  gap?: Spacing;
4915
- justify?: 'start' | 'center' | 'end';
5223
+ justify?: 'start' | 'center' | 'end' | 'space-between';
5224
+ pb?: Spacing;
4916
5225
  pbs?: Spacing;
4917
5226
  pbe?: Spacing;
5227
+ pi?: Spacing;
4918
5228
  pis?: Spacing;
4919
5229
  pie?: Spacing;
4920
5230
  fluid?: boolean;
@@ -4924,9 +5234,11 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
4924
5234
  export const VStack: import("react").ForwardRefExoticComponent<{
4925
5235
  align?: "start" | "center";
4926
5236
  gap?: Spacing;
4927
- justify?: "start" | "center" | "end";
5237
+ justify?: "start" | "center" | "end" | "space-between";
5238
+ pb?: Spacing;
4928
5239
  pbs?: Spacing;
4929
5240
  pbe?: Spacing;
5241
+ pi?: Spacing;
4930
5242
  pis?: Spacing;
4931
5243
  pie?: Spacing;
4932
5244
  fluid?: boolean;
@@ -4938,9 +5250,11 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
4938
5250
  export const HStack: import("react").ForwardRefExoticComponent<{
4939
5251
  align?: "start" | "center";
4940
5252
  gap?: Spacing;
4941
- justify?: "start" | "center" | "end";
5253
+ justify?: "start" | "center" | "end" | "space-between";
5254
+ pb?: Spacing;
4942
5255
  pbs?: Spacing;
4943
5256
  pbe?: Spacing;
5257
+ pi?: Spacing;
4944
5258
  pis?: Spacing;
4945
5259
  pie?: Spacing;
4946
5260
  fluid?: boolean;
@@ -4951,6 +5265,23 @@ declare module '@layerfi/components/components/ui/Stack/Stack' {
4951
5265
  } & import("react").RefAttributes<HTMLDivElement>>;
4952
5266
  export const Spacer: () => import("react/jsx-runtime").JSX.Element;
4953
5267
 
5268
+ }
5269
+ declare module '@layerfi/components/components/ui/TagGroup/TagGroup' {
5270
+ import { TagGroup as ReactAriaTagGroup, TagList as ReactAriaTagList, Tag as ReactAriaTag } from 'react-aria-components';
5271
+ import { type ComponentProps } from 'react';
5272
+ type TagGroupProps = Omit<ComponentProps<typeof ReactAriaTagGroup>, 'className'>;
5273
+ export const TagGroup: import("react").ForwardRefExoticComponent<Omit<TagGroupProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5274
+ type TagListProps<T extends Record<string, unknown>> = Omit<ComponentProps<typeof ReactAriaTagList<T>>, 'className'> & {
5275
+ columnCount?: 1 | 2;
5276
+ };
5277
+ function InternalTagList<T extends Record<string, unknown>>({ columnCount, ...restProps }: TagListProps<T>, ref: React.ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
5278
+ export const TagList: <T extends Record<string, unknown>>(props: TagListProps<T> & {
5279
+ ref?: React.ForwardedRef<HTMLDivElement>;
5280
+ }) => ReturnType<typeof InternalTagList>;
5281
+ type TagProps = Omit<ComponentProps<typeof ReactAriaTag>, 'className'>;
5282
+ export const Tag: import("react").ForwardRefExoticComponent<Omit<TagProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5283
+ export {};
5284
+
4954
5285
  }
4955
5286
  declare module '@layerfi/components/components/ui/Typography/Heading' {
4956
5287
  import type { Spacing } from '@layerfi/components/components/ui/sharedUITypes';
@@ -4958,6 +5289,8 @@ declare module '@layerfi/components/components/ui/Typography/Heading' {
4958
5289
  align?: 'center';
4959
5290
  pbe?: Spacing;
4960
5291
  size?: '2xs' | 'xs' | 'sm' | 'lg';
5292
+ variant?: 'subtle';
5293
+ weight?: 'normal' | 'bold';
4961
5294
  };
4962
5295
  const Heading: import("react").ForwardRefExoticComponent<Omit<Omit<import("react-aria-components").HeadingProps & import("react").RefAttributes<HTMLHeadingElement>, "className"> & HeadingDataProps, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
4963
5296
  export { Heading };
@@ -4973,29 +5306,34 @@ declare module '@layerfi/components/components/ui/Typography/MoneyText' {
4973
5306
 
4974
5307
  }
4975
5308
  declare module '@layerfi/components/components/ui/Typography/Text' {
4976
- import type { ComponentPropsWithoutRef } from 'react';
4977
5309
  import type { Spacing } from '@layerfi/components/components/ui/sharedUITypes';
4978
- type ParagraphProps = Pick<ComponentPropsWithoutRef<'p'>, 'slot'>;
4979
5310
  type TextStyleProps = {
4980
5311
  align?: 'center';
5312
+ ellipsis?: true;
5313
+ noWrap?: true;
5314
+ pb?: Spacing;
4981
5315
  pbe?: Spacing;
4982
5316
  pbs?: Spacing;
4983
5317
  size?: 'xs' | 'sm' | 'md' | 'lg';
5318
+ status?: 'error';
4984
5319
  variant?: 'subtle';
5320
+ weight?: 'normal' | 'bold';
4985
5321
  };
4986
- export const P: import("react").ForwardRefExoticComponent<ParagraphProps & TextStyleProps & {
5322
+ type TextRenderingProps = {
5323
+ nonAria?: true;
5324
+ };
5325
+ export const Header: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
5326
+ children?: import("react").ReactNode | undefined;
5327
+ } & import("react").RefAttributes<HTMLElement>>;
5328
+ export const Label: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref">, "id" | "htmlFor" | "slot"> & TextRenderingProps & TextStyleProps & {
5329
+ children?: import("react").ReactNode | undefined;
5330
+ } & import("react").RefAttributes<HTMLLabelElement>>;
5331
+ export const P: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
4987
5332
  children?: import("react").ReactNode | undefined;
4988
5333
  } & import("react").RefAttributes<HTMLParagraphElement>>;
4989
- type SpanProps = Pick<ComponentPropsWithoutRef<'span'>, 'slot'>;
4990
- export const Span: import("react").ForwardRefExoticComponent<SpanProps & TextStyleProps & {
4991
- noWrap?: boolean;
4992
- } & {
5334
+ export const Span: import("react").ForwardRefExoticComponent<Pick<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "id" | "slot"> & TextRenderingProps & TextStyleProps & {
4993
5335
  children?: import("react").ReactNode | undefined;
4994
5336
  } & import("react").RefAttributes<HTMLSpanElement>>;
4995
- type LabelProps = Pick<ComponentPropsWithoutRef<'label'>, 'slot' | 'htmlFor'>;
4996
- export const Label: import("react").ForwardRefExoticComponent<LabelProps & TextStyleProps & {
4997
- children?: import("react").ReactNode | undefined;
4998
- } & import("react").RefAttributes<HTMLLabelElement>>;
4999
5337
  export {};
5000
5338
 
5001
5339
  }
@@ -5092,6 +5430,7 @@ declare module '@layerfi/components/config/charts' {
5092
5430
  declare module '@layerfi/components/config/general' {
5093
5431
  export const DATE_FORMAT = "LLL d, yyyy";
5094
5432
  export const DATE_FORMAT_SHORT = "M/d/yyyy";
5433
+ export const DATE_FORMAT_SHORT_PADDED = "MM/dd/yyyy";
5095
5434
  export const MONTH_DAY_FORMAT = "LLL d";
5096
5435
  export const TIME_FORMAT = "p";
5097
5436
  export const BREAKPOINTS: {
@@ -5210,6 +5549,123 @@ declare module '@layerfi/components/contexts/BankTransactionsContext/BankTransac
5210
5549
  declare module '@layerfi/components/contexts/BankTransactionsContext/index' {
5211
5550
  export { BankTransactionsContext, useBankTransactionsContext, } from '@layerfi/components/contexts/BankTransactionsContext/BankTransactionsContext';
5212
5551
 
5552
+ }
5553
+ declare module '@layerfi/components/contexts/BillsContext' {
5554
+ import React, { ReactNode } from 'react';
5555
+ import { useBills } from '@layerfi/components/hooks/useBills';
5556
+ import { useBillsRecordPayment } from '@layerfi/components/components/Bills/useBillsRecordPayment';
5557
+ type BillsProviderProps = {
5558
+ children: ReactNode;
5559
+ };
5560
+ export type BillsContextType = ReturnType<typeof useBills>;
5561
+ export const BillsContext: React.Context<{
5562
+ data: import("@layerfi/components/types").Bill[];
5563
+ paginatedData: import("@layerfi/components/types").Bill[];
5564
+ currentPage: number;
5565
+ setCurrentPage: (page: number) => void;
5566
+ pageSize: number;
5567
+ metadata?: import("@layerfi/components/types").Metadata;
5568
+ billInDetails?: import("@layerfi/components/types").Bill;
5569
+ openBillDetails: (bill?: import("@layerfi/components/types").Bill) => void;
5570
+ showBillInDetails: boolean;
5571
+ closeBillDetails: () => void;
5572
+ status: import("@layerfi/components/hooks/useBills").BillStatusFilter;
5573
+ setStatus: (status: import("@layerfi/components/hooks/useBills").BillStatusFilter) => void;
5574
+ dateRange: import("@layerfi/components/types").DateRange;
5575
+ setDateRange: (dateRange: import("@layerfi/components/types").DateRange) => void;
5576
+ vendor: import("@layerfi/components/types/vendors").Vendor | null;
5577
+ setVendor: (vendor: import("@layerfi/components/types/vendors").Vendor | null) => void;
5578
+ fetchMore: () => void;
5579
+ hasMore: boolean;
5580
+ isLoading: boolean;
5581
+ isValidating: boolean;
5582
+ error?: Error;
5583
+ refetch: () => void;
5584
+ }>;
5585
+ export type BillsRecordPaymentContextType = ReturnType<typeof useBillsRecordPayment>;
5586
+ export const BillsRecordPaymentContext: React.Context<{
5587
+ billsToPay: import("@layerfi/components/components/Bills/useBillsRecordPayment").BillsRecordPaymentFormRecord[];
5588
+ setBill: (bill: import("@layerfi/components/types").Bill, index: number) => void;
5589
+ addBill: (bill?: import("@layerfi/components/types").Bill) => void;
5590
+ removeBill: (bill: import("@layerfi/components/types").Bill) => void;
5591
+ removeBillByIndex: (index: number) => void;
5592
+ setAmount: (billId: string, amount: string) => void;
5593
+ setAmountByIndex: (index: number, amount?: string | null) => void;
5594
+ vendor: import("@layerfi/components/types/vendors").Vendor | undefined;
5595
+ setVendor: (newVendor?: import("@layerfi/components/types/vendors").Vendor) => void;
5596
+ paymentDate: Date;
5597
+ setPaymentDate: React.Dispatch<React.SetStateAction<Date>>;
5598
+ paymentMethod: import("@layerfi/components/types/bills").BillPaymentMethod;
5599
+ setPaymentMethod: React.Dispatch<React.SetStateAction<import("@layerfi/components/types/bills").BillPaymentMethod>>;
5600
+ showRecordPaymentForm: boolean;
5601
+ setShowRecordPaymentForm: React.Dispatch<React.SetStateAction<boolean>>;
5602
+ bulkSelectionActive: boolean;
5603
+ openBulkSelection: () => void;
5604
+ closeBulkSelection: () => void;
5605
+ recordPayment: () => Promise<void>;
5606
+ dataSaved: boolean;
5607
+ closeRecordPayment: () => void;
5608
+ clearRecordPaymentSelection: () => void;
5609
+ recordPaymentForBill: (bill: import("@layerfi/components/types").Bill) => void;
5610
+ payRemainingBalance: () => void;
5611
+ isLoading: boolean;
5612
+ apiError: import("@layerfi/components/models/APIError").APIError | undefined;
5613
+ }>;
5614
+ export const useBillsContext: () => {
5615
+ data: import("@layerfi/components/types").Bill[];
5616
+ paginatedData: import("@layerfi/components/types").Bill[];
5617
+ currentPage: number;
5618
+ setCurrentPage: (page: number) => void;
5619
+ pageSize: number;
5620
+ metadata?: import("@layerfi/components/types").Metadata;
5621
+ billInDetails?: import("@layerfi/components/types").Bill;
5622
+ openBillDetails: (bill?: import("@layerfi/components/types").Bill) => void;
5623
+ showBillInDetails: boolean;
5624
+ closeBillDetails: () => void;
5625
+ status: import("@layerfi/components/hooks/useBills").BillStatusFilter;
5626
+ setStatus: (status: import("@layerfi/components/hooks/useBills").BillStatusFilter) => void;
5627
+ dateRange: import("@layerfi/components/types").DateRange;
5628
+ setDateRange: (dateRange: import("@layerfi/components/types").DateRange) => void;
5629
+ vendor: import("@layerfi/components/types/vendors").Vendor | null;
5630
+ setVendor: (vendor: import("@layerfi/components/types/vendors").Vendor | null) => void;
5631
+ fetchMore: () => void;
5632
+ hasMore: boolean;
5633
+ isLoading: boolean;
5634
+ isValidating: boolean;
5635
+ error?: Error;
5636
+ refetch: () => void;
5637
+ };
5638
+ export const useBillsRecordPaymentContext: () => {
5639
+ billsToPay: import("@layerfi/components/components/Bills/useBillsRecordPayment").BillsRecordPaymentFormRecord[];
5640
+ setBill: (bill: import("@layerfi/components/types").Bill, index: number) => void;
5641
+ addBill: (bill?: import("@layerfi/components/types").Bill) => void;
5642
+ removeBill: (bill: import("@layerfi/components/types").Bill) => void;
5643
+ removeBillByIndex: (index: number) => void;
5644
+ setAmount: (billId: string, amount: string) => void;
5645
+ setAmountByIndex: (index: number, amount?: string | null) => void;
5646
+ vendor: import("@layerfi/components/types/vendors").Vendor | undefined;
5647
+ setVendor: (newVendor?: import("@layerfi/components/types/vendors").Vendor) => void;
5648
+ paymentDate: Date;
5649
+ setPaymentDate: React.Dispatch<React.SetStateAction<Date>>;
5650
+ paymentMethod: import("@layerfi/components/types/bills").BillPaymentMethod;
5651
+ setPaymentMethod: React.Dispatch<React.SetStateAction<import("@layerfi/components/types/bills").BillPaymentMethod>>;
5652
+ showRecordPaymentForm: boolean;
5653
+ setShowRecordPaymentForm: React.Dispatch<React.SetStateAction<boolean>>;
5654
+ bulkSelectionActive: boolean;
5655
+ openBulkSelection: () => void;
5656
+ closeBulkSelection: () => void;
5657
+ recordPayment: () => Promise<void>;
5658
+ dataSaved: boolean;
5659
+ closeRecordPayment: () => void;
5660
+ clearRecordPaymentSelection: () => void;
5661
+ recordPaymentForBill: (bill: import("@layerfi/components/types").Bill) => void;
5662
+ payRemainingBalance: () => void;
5663
+ isLoading: boolean;
5664
+ apiError: import("@layerfi/components/models/APIError").APIError | undefined;
5665
+ };
5666
+ export const BillsProvider: React.FC<BillsProviderProps>;
5667
+ export {};
5668
+
5213
5669
  }
5214
5670
  declare module '@layerfi/components/contexts/ChartOfAccountsContext/ChartOfAccountsContext' {
5215
5671
  import { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/index';
@@ -5453,6 +5909,329 @@ declare module '@layerfi/components/contexts/VendorsContext' {
5453
5909
  export const VendorsProvider: React.FC<VendorsProviderProps>;
5454
5910
  export {};
5455
5911
 
5912
+ }
5913
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/components/BankTransactionTagsAndMemo' {
5914
+ import type { BankTransaction } from '@layerfi/components/types';
5915
+ type BankTransactionTagsAndMemoProps = {
5916
+ bankTransaction: Pick<BankTransaction, 'id' | 'transaction_tags'>;
5917
+ showDescriptions?: boolean;
5918
+ };
5919
+ export function BankTransactionTagsAndMemo({ bankTransaction, showDescriptions, }: BankTransactionTagsAndMemoProps): import("react/jsx-runtime").JSX.Element | null;
5920
+ export {};
5921
+
5922
+ }
5923
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/api/useRemoveTagFromBankTransaction' {
5924
+ type RemoveTagFromBankTransactionArg = {
5925
+ tagId: string;
5926
+ };
5927
+ type RemoveTagFromBankTransactionOptions = {
5928
+ bankTransactionId: string;
5929
+ };
5930
+ export function useRemoveTagFromBankTransaction({ bankTransactionId }: RemoveTagFromBankTransactionOptions): import("swr/mutation").SWRMutationResponse<Record<string, never>, any, () => {
5931
+ readonly accessToken: string;
5932
+ readonly apiUrl: string;
5933
+ readonly businessId: string;
5934
+ readonly bankTransactionId: string;
5935
+ readonly tags: readonly ["#remove-tag-from-bank-transaction"];
5936
+ } | undefined, RemoveTagFromBankTransactionArg>;
5937
+ export {};
5938
+
5939
+ }
5940
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/api/useTagBankTransaction' {
5941
+ type TagBankTransactionArg = {
5942
+ key: string;
5943
+ value: string;
5944
+ };
5945
+ type TagBankTransactionOptions = {
5946
+ bankTransactionId: string;
5947
+ };
5948
+ export function useTagBankTransaction({ bankTransactionId }: TagBankTransactionOptions): import("swr/mutation").SWRMutationResponse<Record<string, never>, any, () => {
5949
+ readonly accessToken: string;
5950
+ readonly apiUrl: string;
5951
+ readonly businessId: string;
5952
+ readonly bankTransactionId: string;
5953
+ readonly tags: readonly ["#tag-bank-transaction"];
5954
+ } | undefined, TagBankTransactionArg>;
5955
+ export {};
5956
+
5957
+ }
5958
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagSelector' {
5959
+ import type { BankTransaction } from '@layerfi/components/types';
5960
+ type BankTransactionTagSelectorProps = {
5961
+ bankTransaction: Pick<BankTransaction, 'id' | 'transaction_tags'>;
5962
+ };
5963
+ export function BankTransactionTagSelector({ bankTransaction }: BankTransactionTagSelectorProps): import("react/jsx-runtime").JSX.Element;
5964
+ export {};
5965
+
5966
+ }
5967
+ declare module '@layerfi/components/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagVisibilityProvider' {
5968
+ import { type PropsWithChildren } from 'react';
5969
+ export function useBankTransactionTagVisibility(): {
5970
+ showTags: boolean;
5971
+ };
5972
+ type BankTransactionTagVisibilityProviderProps = PropsWithChildren<{
5973
+ showTags: boolean;
5974
+ }>;
5975
+ export function BankTransactionTagVisibilityProvider({ children, showTags, }: BankTransactionTagVisibilityProviderProps): import("react/jsx-runtime").JSX.Element;
5976
+ export {};
5977
+
5978
+ }
5979
+ declare module '@layerfi/components/features/customers/api/useListCustomers' {
5980
+ import { type SWRInfiniteResponse } from 'swr/infinite';
5981
+ import { Schema } from 'effect';
5982
+ const ListCustomersRawResultSchema: Schema.Struct<{
5983
+ data: Schema.Array$<Schema.Struct<{
5984
+ id: typeof Schema.UUID;
5985
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
5986
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
5987
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
5988
+ email: Schema.NullOr<typeof Schema.String>;
5989
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
5990
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
5991
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
5992
+ memo: Schema.NullOr<typeof Schema.String>;
5993
+ }>>;
5994
+ meta: Schema.Struct<{
5995
+ pagination: Schema.Struct<{
5996
+ cursor: Schema.NullOr<typeof Schema.String>;
5997
+ hasMore: Schema.PropertySignature<":", boolean, "has_more", ":", boolean, false, never>;
5998
+ }>;
5999
+ }>;
6000
+ }>;
6001
+ type ListCustomersRawResult = typeof ListCustomersRawResultSchema.Type;
6002
+ export const CUSTOMERS_TAG_KEY = "#customers";
6003
+ class ListCustomersSWRResponse {
6004
+ private swrResponse;
6005
+ constructor(swrResponse: SWRInfiniteResponse<ListCustomersRawResult>);
6006
+ get data(): {
6007
+ readonly data: readonly {
6008
+ readonly id: string;
6009
+ readonly memo: string | null;
6010
+ readonly status: "ACTIVE" | "ARCHIVED";
6011
+ readonly email: string | null;
6012
+ readonly externalId: string | null;
6013
+ readonly individualName: string | null;
6014
+ readonly companyName: string | null;
6015
+ readonly mobilePhone: string | null;
6016
+ readonly officePhone: string | null;
6017
+ }[];
6018
+ readonly meta: {
6019
+ readonly pagination: {
6020
+ readonly cursor: string | null;
6021
+ readonly hasMore: boolean;
6022
+ };
6023
+ };
6024
+ }[] | undefined;
6025
+ get isLoading(): boolean;
6026
+ get isValidating(): boolean;
6027
+ get isError(): boolean;
6028
+ }
6029
+ export function useListCustomers(): ListCustomersSWRResponse;
6030
+ export {};
6031
+
6032
+ }
6033
+ declare module '@layerfi/components/features/customers/customersSchemas' {
6034
+ import { Schema } from 'effect';
6035
+ export const CustomerSchema: Schema.Struct<{
6036
+ id: typeof Schema.UUID;
6037
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6038
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6039
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6040
+ email: Schema.NullOr<typeof Schema.String>;
6041
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6042
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6043
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6044
+ memo: Schema.NullOr<typeof Schema.String>;
6045
+ }>;
6046
+
6047
+ }
6048
+ declare module '@layerfi/components/features/tags/api/useTagDimensions' {
6049
+ import { type SWRResponse } from 'swr';
6050
+ import { Schema } from 'effect';
6051
+ const TagDimensionsListSchema: Schema.Array$<Schema.Struct<{
6052
+ id: typeof Schema.UUID;
6053
+ key: typeof Schema.NonEmptyTrimmedString;
6054
+ strictness: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.Literal<["BALANCING", "NON_BALANCING"]>>;
6055
+ definedValues: Schema.PropertySignature<":", readonly {
6056
+ readonly value: string;
6057
+ readonly id: string;
6058
+ }[], "defined_values", ":", readonly {
6059
+ readonly value: string;
6060
+ readonly id: string;
6061
+ }[], false, never>;
6062
+ }>>;
6063
+ class TagDimensionsSWRResponse {
6064
+ private swrResponse;
6065
+ constructor(swrResponse: SWRResponse<typeof TagDimensionsListSchema.Type>);
6066
+ get data(): readonly {
6067
+ readonly id: string;
6068
+ readonly key: string;
6069
+ readonly strictness: "BALANCING" | "NON_BALANCING";
6070
+ readonly definedValues: readonly {
6071
+ readonly value: string;
6072
+ readonly id: string;
6073
+ }[];
6074
+ }[] | undefined;
6075
+ get isLoading(): boolean;
6076
+ get isValidating(): boolean;
6077
+ get isError(): boolean;
6078
+ }
6079
+ type UseTagDimensionsParameters = {
6080
+ isEnabled?: boolean;
6081
+ };
6082
+ export function useTagDimensions({ isEnabled }?: UseTagDimensionsParameters): TagDimensionsSWRResponse;
6083
+ export function usePreloadTagDimensions(parameters?: UseTagDimensionsParameters): void;
6084
+ export {};
6085
+
6086
+ }
6087
+ declare module '@layerfi/components/features/tags/components/TagSelector' {
6088
+ import { Schema } from 'effect';
6089
+ const TagValueSchema: Schema.Data<Schema.Struct<{
6090
+ dimensionId: typeof Schema.UUID;
6091
+ dimensionLabel: typeof Schema.NonEmptyTrimmedString;
6092
+ valueId: typeof Schema.UUID;
6093
+ valueLabel: typeof Schema.NonEmptyTrimmedString;
6094
+ }>>;
6095
+ export const makeTagValue: (i: {
6096
+ readonly dimensionId: string;
6097
+ readonly dimensionLabel: string;
6098
+ readonly valueId: string;
6099
+ readonly valueLabel: string;
6100
+ }, overrideOptions?: import("effect/SchemaAST").ParseOptions) => {
6101
+ readonly dimensionId: string;
6102
+ readonly dimensionLabel: string;
6103
+ readonly valueId: string;
6104
+ readonly valueLabel: string;
6105
+ };
6106
+ export type TagValue = typeof TagValueSchema.Type;
6107
+ const TagSchema: Schema.Data<Schema.Struct<{
6108
+ id: typeof Schema.UUID;
6109
+ dimensionLabel: typeof Schema.NonEmptyTrimmedString;
6110
+ valueLabel: typeof Schema.NonEmptyTrimmedString;
6111
+ _local: Schema.Struct<{
6112
+ isOptimistic: typeof Schema.Boolean;
6113
+ }>;
6114
+ }>>;
6115
+ export const makeTag: (i: {
6116
+ readonly id: string;
6117
+ readonly dimensionLabel: string;
6118
+ readonly valueLabel: string;
6119
+ readonly _local: {
6120
+ readonly isOptimistic: boolean;
6121
+ };
6122
+ }, overrideOptions?: import("effect/SchemaAST").ParseOptions) => {
6123
+ readonly id: string;
6124
+ readonly dimensionLabel: string;
6125
+ readonly valueLabel: string;
6126
+ readonly _local: {
6127
+ readonly isOptimistic: boolean;
6128
+ };
6129
+ };
6130
+ export type Tag = typeof TagSchema.Type;
6131
+ type TagSelectorProps = {
6132
+ selectedTags: ReadonlyArray<Tag>;
6133
+ isReadOnly?: boolean;
6134
+ onAddTag: (tagValue: TagValue) => void;
6135
+ onRemoveTag: (tag: Tag) => void;
6136
+ };
6137
+ export function TagSelector({ selectedTags, isReadOnly, onAddTag, onRemoveTag, }: TagSelectorProps): import("react/jsx-runtime").JSX.Element | null;
6138
+ export {};
6139
+
6140
+ }
6141
+ declare module '@layerfi/components/features/tags/tagSchemas' {
6142
+ import { Schema } from 'effect';
6143
+ export const TagDimensionSchema: Schema.Struct<{
6144
+ id: typeof Schema.UUID;
6145
+ key: typeof Schema.NonEmptyTrimmedString;
6146
+ strictness: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.Literal<["BALANCING", "NON_BALANCING"]>>;
6147
+ definedValues: Schema.PropertySignature<":", readonly {
6148
+ readonly value: string;
6149
+ readonly id: string;
6150
+ }[], "defined_values", ":", readonly {
6151
+ readonly value: string;
6152
+ readonly id: string;
6153
+ }[], false, never>;
6154
+ }>;
6155
+
6156
+ }
6157
+ declare module '@layerfi/components/features/tags/useFlattenedTagValues' {
6158
+ import type { useTagDimensions } from '@layerfi/components/features/tags/api/useTagDimensions';
6159
+ export function useFlattenedTagValues(dimensions: ReturnType<typeof useTagDimensions>['data']): {
6160
+ readonly dimensionId: string;
6161
+ readonly dimensionLabel: string;
6162
+ readonly valueId: string;
6163
+ readonly valueLabel: string;
6164
+ }[];
6165
+
6166
+ }
6167
+ declare module '@layerfi/components/features/vendors/api/useListVendors' {
6168
+ import { type SWRInfiniteResponse } from 'swr/infinite';
6169
+ import { Schema } from 'effect';
6170
+ const ListVendorsRawResultSchema: Schema.Struct<{
6171
+ data: Schema.Array$<Schema.Struct<{
6172
+ id: typeof Schema.UUID;
6173
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6174
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6175
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6176
+ email: Schema.NullOr<typeof Schema.String>;
6177
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6178
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6179
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6180
+ memo: Schema.NullOr<typeof Schema.String>;
6181
+ }>>;
6182
+ meta: Schema.Struct<{
6183
+ pagination: Schema.Struct<{
6184
+ cursor: Schema.NullOr<typeof Schema.String>;
6185
+ hasMore: Schema.PropertySignature<":", boolean, "has_more", ":", boolean, false, never>;
6186
+ }>;
6187
+ }>;
6188
+ }>;
6189
+ type ListVendorsRawResult = typeof ListVendorsRawResultSchema.Type;
6190
+ export const VENDORS_TAG_KEY = "#vendors";
6191
+ class ListVendorsSWRResponse {
6192
+ private swrResponse;
6193
+ constructor(swrResponse: SWRInfiniteResponse<ListVendorsRawResult>);
6194
+ get data(): {
6195
+ readonly data: readonly {
6196
+ readonly id: string;
6197
+ readonly memo: string | null;
6198
+ readonly status: "ACTIVE" | "ARCHIVED";
6199
+ readonly email: string | null;
6200
+ readonly externalId: string | null;
6201
+ readonly individualName: string | null;
6202
+ readonly companyName: string | null;
6203
+ readonly mobilePhone: string | null;
6204
+ readonly officePhone: string | null;
6205
+ }[];
6206
+ readonly meta: {
6207
+ readonly pagination: {
6208
+ readonly cursor: string | null;
6209
+ readonly hasMore: boolean;
6210
+ };
6211
+ };
6212
+ }[] | undefined;
6213
+ get isLoading(): boolean;
6214
+ get isValidating(): boolean;
6215
+ get isError(): boolean;
6216
+ }
6217
+ export function useListVendors(): ListVendorsSWRResponse;
6218
+ export {};
6219
+
6220
+ }
6221
+ declare module '@layerfi/components/features/vendors/vendorsSchemas' {
6222
+ import { Schema } from 'effect';
6223
+ export const VendorSchema: Schema.Struct<{
6224
+ id: typeof Schema.UUID;
6225
+ externalId: Schema.PropertySignature<":", string | null, "external_id", ":", string | null, false, never>;
6226
+ individualName: Schema.PropertySignature<":", string | null, "individual_name", ":", string | null, false, never>;
6227
+ companyName: Schema.PropertySignature<":", string | null, "company_name", ":", string | null, false, never>;
6228
+ email: Schema.NullOr<typeof Schema.String>;
6229
+ mobilePhone: Schema.PropertySignature<":", string | null, "mobile_phone", ":", string | null, false, never>;
6230
+ officePhone: Schema.PropertySignature<":", string | null, "office_phone", ":", string | null, false, never>;
6231
+ status: Schema.transform<typeof Schema.NonEmptyTrimmedString, Schema.SchemaClass<"ACTIVE" | "ARCHIVED", "ACTIVE" | "ARCHIVED", never>>;
6232
+ memo: Schema.NullOr<typeof Schema.String>;
6233
+ }>;
6234
+
5456
6235
  }
5457
6236
  declare module '@layerfi/components/hooks/array/usePaginatedList' {
5458
6237
  export function usePaginatedList<T>(list: ReadonlyArray<T>, pageSize: number): {
@@ -5840,24 +6619,32 @@ declare module '@layerfi/components/hooks/customAccounts/useCreateCustomAccount'
5840
6619
  }
5841
6620
  declare module '@layerfi/components/hooks/customAccounts/useCreateCustomAccountTransactions' {
5842
6621
  import type { RawCustomTransaction } from '@layerfi/components/hooks/customAccounts/types';
6622
+ import { BankTransaction } from '@layerfi/components/types';
6623
+ import { APIError } from '@layerfi/components/models/APIError';
5843
6624
  type CreateCustomAccountTransactionsBody = {
5844
6625
  transactions: RawCustomTransaction[];
5845
6626
  };
5846
6627
  type CreateCustomAccountTransactionsArgs = CreateCustomAccountTransactionsBody & {
5847
6628
  customAccountId: string;
5848
6629
  };
5849
- export function useCreateCustomAccountTransactions(): import("swr/mutation").SWRMutationResponse<unknown, any, () => {
6630
+ function buildKey({ access_token: accessToken, apiUrl, businessId, }: {
6631
+ access_token?: string;
6632
+ apiUrl?: string;
6633
+ businessId: string;
6634
+ }): {
5850
6635
  readonly accessToken: string;
5851
6636
  readonly apiUrl: string;
5852
6637
  readonly businessId: string;
5853
6638
  readonly tags: readonly ["#custom-accounts:create-transactions"];
5854
- } | undefined, CreateCustomAccountTransactionsArgs>;
6639
+ } | null;
6640
+ export function useCreateCustomAccountTransactions(): import("swr/mutation").SWRMutationResponse<BankTransaction[], APIError, () => ReturnType<typeof buildKey>, CreateCustomAccountTransactionsArgs>;
5855
6641
  export {};
5856
6642
 
5857
6643
  }
5858
6644
  declare module '@layerfi/components/hooks/customAccounts/useCustomAccountParseCsv' {
5859
6645
  import type { CustomAccountTransactionRow, RawCustomTransaction } from '@layerfi/components/hooks/customAccounts/types';
5860
6646
  import type { PreviewCsv } from '@layerfi/components/components/CsvUpload/types';
6647
+ import { APIError } from '@layerfi/components/models/APIError';
5861
6648
  type CustomAccountParseCsvArgs = {
5862
6649
  file: File;
5863
6650
  customAccountId: string;
@@ -5868,13 +6655,20 @@ declare module '@layerfi/components/hooks/customAccounts/useCustomAccountParseCs
5868
6655
  transactions: RawCustomTransaction[];
5869
6656
  };
5870
6657
  new_transactions_preview: PreviewCsv<CustomAccountTransactionRow>;
6658
+ invalid_transactions_count: number;
6659
+ total_transactions_count: number;
5871
6660
  };
5872
- export function useCustomAccountParseCsv(): import("swr/mutation").SWRMutationResponse<CustomAccountParseCsvResponse, any, () => {
6661
+ function buildKey({ access_token: accessToken, apiUrl, businessId, }: {
6662
+ access_token?: string;
6663
+ apiUrl?: string;
6664
+ businessId: string;
6665
+ }): {
5873
6666
  readonly accessToken: string;
5874
6667
  readonly apiUrl: string;
5875
6668
  readonly businessId: string;
5876
6669
  readonly tags: readonly ["#custom-accounts:parse-csv"];
5877
- } | undefined, CustomAccountParseCsvArgs>;
6670
+ } | undefined;
6671
+ export function useCustomAccountParseCsv(): import("swr/mutation").SWRMutationResponse<CustomAccountParseCsvResponse, APIError, () => ReturnType<typeof buildKey>, CustomAccountParseCsvArgs>;
5878
6672
  export {};
5879
6673
 
5880
6674
  }
@@ -5882,6 +6676,10 @@ declare module '@layerfi/components/hooks/customAccounts/useCustomAccounts' {
5882
6676
  export const CUSTOM_ACCOUNTS_TAG_KEY = "#custom-accounts";
5883
6677
  export function useCustomAccounts(): import("swr").SWRResponse<import("./types").CustomAccount[], any, any>;
5884
6678
 
6679
+ }
6680
+ declare module '@layerfi/components/hooks/ref/useStopClickEventsRef' {
6681
+ export function useStopClickEventsRefCallback(): (element: HTMLElement | null) => void;
6682
+
5885
6683
  }
5886
6684
  declare module '@layerfi/components/hooks/useAuth' {
5887
6685
  export function useAuth(): import("swr").SWRResponse<{
@@ -5963,6 +6761,7 @@ declare module '@layerfi/components/hooks/useBankTransactions/useAugmentedBankTr
5963
6761
  }
5964
6762
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactions' {
5965
6763
  import { type GetBankTransactionsReturn } from '@layerfi/components/api/layer/bankTransactions';
6764
+ import type { BankTransaction } from '@layerfi/components/types';
5966
6765
  export const BANK_TRANSACTIONS_TAG_KEY = "#bank-transactions";
5967
6766
  export type UseBankTransactionsOptions = {
5968
6767
  categorized?: boolean;
@@ -5973,6 +6772,12 @@ declare module '@layerfi/components/hooks/useBankTransactions/useBankTransaction
5973
6772
  tagFilterQueryString?: string;
5974
6773
  };
5975
6774
  export function useBankTransactions({ categorized, descriptionFilter, direction, startDate, endDate, tagFilterQueryString, }: UseBankTransactionsOptions): import("swr/infinite").SWRInfiniteResponse<GetBankTransactionsReturn, any>;
6775
+ export function useBankTransactionsInvalidator(): {
6776
+ invalidateBankTransactions: () => Promise<undefined[]>;
6777
+ };
6778
+ export function useBankTransactionsOptimisticUpdater(): {
6779
+ optimisticallyUpdateBankTransactions: (transformTransaction: (txn: BankTransaction) => BankTransaction) => Promise<undefined[]>;
6780
+ };
5976
6781
 
5977
6782
  }
5978
6783
  declare module '@layerfi/components/hooks/useBankTransactions/useBankTransactionsDownload' {
@@ -6056,6 +6861,39 @@ declare module '@layerfi/components/hooks/useBankTransactions/utils' {
6056
6861
  export const applyAccountFilter: (data?: BankTransaction[], filter?: string[]) => BankTransaction[] | undefined;
6057
6862
  export const applyCategorizationStatusFilter: (data?: BankTransaction[], filter?: DisplayState) => BankTransaction[] | undefined;
6058
6863
 
6864
+ }
6865
+ declare module '@layerfi/components/hooks/useBills' {
6866
+ import { Bill } from '@layerfi/components/types/bills';
6867
+ import { DateRange, Metadata } from '@layerfi/components/types';
6868
+ import { Vendor } from '@layerfi/components/types/vendors';
6869
+ export type BillStatusFilter = 'PAID' | 'UNPAID';
6870
+ type UseBills = () => {
6871
+ data: Bill[];
6872
+ paginatedData: Bill[];
6873
+ currentPage: number;
6874
+ setCurrentPage: (page: number) => void;
6875
+ pageSize: number;
6876
+ metadata?: Metadata;
6877
+ billInDetails?: Bill;
6878
+ openBillDetails: (bill?: Bill) => void;
6879
+ showBillInDetails: boolean;
6880
+ closeBillDetails: () => void;
6881
+ status: BillStatusFilter;
6882
+ setStatus: (status: BillStatusFilter) => void;
6883
+ dateRange: DateRange;
6884
+ setDateRange: (dateRange: DateRange) => void;
6885
+ vendor: Vendor | null;
6886
+ setVendor: (vendor: Vendor | null) => void;
6887
+ fetchMore: () => void;
6888
+ hasMore: boolean;
6889
+ isLoading: boolean;
6890
+ isValidating: boolean;
6891
+ error?: Error;
6892
+ refetch: () => void;
6893
+ };
6894
+ export const useBills: UseBills;
6895
+ export {};
6896
+
6059
6897
  }
6060
6898
  declare module '@layerfi/components/hooks/useChartOfAccounts/index' {
6061
6899
  export { useChartOfAccounts } from '@layerfi/components/hooks/useChartOfAccounts/useChartOfAccounts';
@@ -6997,7 +7835,7 @@ declare module '@layerfi/components/index' {
6997
7835
  export { Onboarding } from '@layerfi/components/components/Onboarding/index';
6998
7836
  export { LinkedAccounts } from '@layerfi/components/components/LinkedAccounts/index';
6999
7837
  export { UploadTransactions as unstable_UploadTransactions } from '@layerfi/components/components/UploadTransactions/UploadTransactions';
7000
- export { BankTransactions } from '@layerfi/components/components/BankTransactions/index';
7838
+ export { BankTransactions } from '@layerfi/components/components/BankTransactions/BankTransactions';
7001
7839
  export { Integrations } from '@layerfi/components/components/Integrations/Integrations';
7002
7840
  export { ProfitAndLoss } from '@layerfi/components/components/ProfitAndLoss/index';
7003
7841
  export { BalanceSheet } from '@layerfi/components/components/BalanceSheet/index';
@@ -7013,6 +7851,7 @@ declare module '@layerfi/components/index' {
7013
7851
  export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index';
7014
7852
  export { GeneralLedgerView } from '@layerfi/components/views/GeneralLedger/index';
7015
7853
  export { ProjectProfitabilityView } from '@layerfi/components/views/ProjectProfitability/index';
7854
+ export { unstable_BillsView } from '@layerfi/components/views/Bills';
7016
7855
  export { Reports } from '@layerfi/components/views/Reports/index';
7017
7856
  export { ProfitAndLossView } from '@layerfi/components/components/ProfitAndLossView/index';
7018
7857
  export { useLayerContext } from '@layerfi/components/contexts/LayerContext/index';
@@ -7316,6 +8155,10 @@ declare module '@layerfi/components/providers/ReceiptsProvider/ReceiptsProvider'
7316
8155
  declare module '@layerfi/components/providers/ReceiptsProvider/index' {
7317
8156
  export { ReceiptsProvider } from '@layerfi/components/providers/ReceiptsProvider/ReceiptsProvider';
7318
8157
 
8158
+ }
8159
+ declare module '@layerfi/components/public/styles/publicClassname' {
8160
+ export const PUBLIC_CLASSNAME = "Layer__Public";
8161
+
7319
8162
  }
7320
8163
  declare module '@layerfi/components/types/api' {
7321
8164
  export interface PaginationMetadata {
@@ -7357,6 +8200,7 @@ declare module '@layerfi/components/types/balance_sheet' {
7357
8200
  declare module '@layerfi/components/types/bank_transactions' {
7358
8201
  import { Categorization, CategorizationStatus, Category } from '@layerfi/components/types/categories';
7359
8202
  import { S3PresignedUrl } from '@layerfi/components/types/general';
8203
+ import type { TransactionTag } from '@layerfi/components/types/tags';
7360
8204
  export enum Direction {
7361
8205
  CREDIT = "CREDIT",
7362
8206
  DEBIT = "DEBIT"
@@ -7401,6 +8245,7 @@ declare module '@layerfi/components/types/bank_transactions' {
7401
8245
  suggested_matches?: SuggestedMatch[];
7402
8246
  match?: BankTransactionMatch;
7403
8247
  document_ids: string[];
8248
+ transaction_tags: ReadonlyArray<TransactionTag>;
7404
8249
  }
7405
8250
  export interface SuggestedMatch {
7406
8251
  id: string;
@@ -7441,9 +8286,10 @@ declare module '@layerfi/components/types/bills' {
7441
8286
  const UNPAID_STATUS_MAP: {
7442
8287
  readonly SENT: "SENT";
7443
8288
  readonly PARTIALLY_PAID: "PARTIALLY_PAID";
8289
+ readonly RECEIVED: "RECEIVED";
7444
8290
  };
7445
8291
  export type UnpaidStatuses = typeof UNPAID_STATUS_MAP[keyof typeof UNPAID_STATUS_MAP];
7446
- export const UNPAID_STATUSES: ("SENT" | "PARTIALLY_PAID")[];
8292
+ export const UNPAID_STATUSES: ("SENT" | "PARTIALLY_PAID" | "RECEIVED")[];
7447
8293
  const PAID_STATUS_MAP: {
7448
8294
  readonly PAID: "PAID";
7449
8295
  };
@@ -7455,7 +8301,7 @@ declare module '@layerfi/components/types/bills' {
7455
8301
  export type VoidedStatuses = typeof VOIDED_STATUS_MAP[keyof typeof VOIDED_STATUS_MAP];
7456
8302
  export const VOIDED_STATUS: "VOIDED";
7457
8303
  export type BillStatus = UnpaidStatuses | PaidStatuses | VoidedStatuses;
7458
- type BillTerm = 'DUE_ON_RECEIPT' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_60';
8304
+ export type BillTerm = 'DUE_ON_RECEIPT' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_60';
7459
8305
  export const BillTerms: {
7460
8306
  id: BillTerm;
7461
8307
  label: string;
@@ -7508,7 +8354,7 @@ declare module '@layerfi/components/types/bills' {
7508
8354
  amount: number;
7509
8355
  transaction_tags: TransactionTag[];
7510
8356
  };
7511
- type SalesTax = {
8357
+ export type SalesTax = {
7512
8358
  amount: number;
7513
8359
  tax_account: TaxAccount;
7514
8360
  };
@@ -7767,6 +8613,7 @@ declare module '@layerfi/components/types/general' {
7767
8613
  BANK_TRANSACTIONS = "BANK_TRANSACTIONS",
7768
8614
  CHART_OF_ACCOUNTS = "CHART_OF_ACCOUNTS",
7769
8615
  JOURNAL = "JOURNAL",
8616
+ BILLS = "BILLS",
7770
8617
  LEDGER_ACCOUNTS = "LEDGER_ACCOUNTS",
7771
8618
  LINKED_ACCOUNTS = "LINKED_ACCOUNTS",
7772
8619
  PROFIT_AND_LOSS = "PROFIT_AND_LOSS",
@@ -8517,6 +9364,9 @@ declare module '@layerfi/components/types/tags' {
8517
9364
  created_at: string;
8518
9365
  updated_at: string;
8519
9366
  deleted_at?: string;
9367
+ _local?: {
9368
+ isOptimistic: boolean;
9369
+ };
8520
9370
  };
8521
9371
  export type TagFilterInput = {
8522
9372
  tagKey: string;
@@ -8581,7 +9431,7 @@ declare module '@layerfi/components/types/utility/enumWithUnknownValues' {
8581
9431
  }
8582
9432
  declare module '@layerfi/components/types/utility/oneOf' {
8583
9433
  type OnlyFirst<First, Second> = First & {
8584
- [Key in keyof Omit<Second, keyof First>]: never;
9434
+ [Key in keyof Omit<Second, keyof First>]?: never;
8585
9435
  };
8586
9436
  type MergeTypes<Types extends Array<unknown>, Result = Record<never, never>> = Types extends [infer Head, ...infer Remaining] ? MergeTypes<Remaining, Result & Head> : Result;
8587
9437
  export type OneOf<Types extends Array<unknown>, Result = never, AllProperties = MergeTypes<Types>> = Types extends [infer Head, ...infer Remaining] ? OneOf<Remaining, Result | OnlyFirst<Head, AllProperties>, AllProperties> : Result;
@@ -8623,6 +9473,7 @@ declare module '@layerfi/components/types' {
8623
9473
  export { LedgerAccountLineItems as LedgerAccounts, LedgerAccountLineItem, LedgerAccountsAccount, LedgerAccountsEntry, } from '@layerfi/components/types/ledger_accounts';
8624
9474
  export { SortDirection } from '@layerfi/components/types/general';
8625
9475
  export { Business } from '@layerfi/components/types/business';
9476
+ export { Bill } from '@layerfi/components/types/bills';
8626
9477
  export interface FormError {
8627
9478
  field: string;
8628
9479
  message: string;
@@ -8777,7 +9628,7 @@ declare module '@layerfi/components/utils/delay/runDelayed' {
8777
9628
 
8778
9629
  }
8779
9630
  declare module '@layerfi/components/utils/form' {
8780
- export const notEmpty: (value?: string) => boolean;
9631
+ export const notEmpty: (value?: string | null) => boolean;
8781
9632
  export const validateEmailFormat: (email?: string, required?: boolean) => boolean;
8782
9633
 
8783
9634
  }
@@ -8909,6 +9760,15 @@ declare module '@layerfi/components/utils/swr/defaultSWRConfig' {
8909
9760
  readonly revalidateIfStale: false;
8910
9761
  };
8911
9762
 
9763
+ }
9764
+ declare module '@layerfi/components/utils/swr/useGlobalInvalidator' {
9765
+ export function useGlobalInvalidator(): {
9766
+ invalidate: (predicate: (tags: ReadonlyArray<string>) => boolean) => Promise<undefined[]>;
9767
+ };
9768
+ export function useGlobalOptimisticUpdater(): {
9769
+ optimisticUpdate: <unsafe_TData>(predicate: (tags: ReadonlyArray<string>) => boolean, optimisticUpdateCallback: (displayedData: unsafe_TData) => unsafe_TData) => Promise<undefined[]>;
9770
+ };
9771
+
8912
9772
  }
8913
9773
  declare module '@layerfi/components/utils/swr/withSWRKeyTags' {
8914
9774
  export function withSWRKeyTags(key: unknown, predicate: (tags: ReadonlyArray<string>) => boolean): boolean;
@@ -8989,7 +9849,7 @@ declare module '@layerfi/components/views/AccountingOverview/internal/Transactio
8989
9849
 
8990
9850
  }
8991
9851
  declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts' {
8992
- import { BankTransactionsStringOverrides } from '@layerfi/components/components/BankTransactions/BankTransactions';
9852
+ import { type BankTransactionsStringOverrides } from '@layerfi/components/components/BankTransactions/BankTransactions';
8993
9853
  import { BankTransactionsMode } from '@layerfi/components/providers/LegacyModeProvider/LegacyModeProvider';
8994
9854
  import { MobileComponentType } from '@layerfi/components/components/BankTransactions/constants';
8995
9855
  interface BankTransactionsWithLinkedAccountsStringOverrides {
@@ -9001,12 +9861,13 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
9001
9861
  title?: string;
9002
9862
  showTitle?: boolean;
9003
9863
  elevatedLinkedAccounts?: boolean;
9004
- showLedgerBalance?: boolean;
9005
- showUnlinkItem?: boolean;
9006
9864
  showBreakConnection?: boolean;
9007
9865
  showDescriptions?: boolean;
9866
+ showLedgerBalance?: boolean;
9008
9867
  showReceiptUploads?: boolean;
9868
+ showTags?: boolean;
9009
9869
  showTooltips?: boolean;
9870
+ showUnlinkItem?: boolean;
9010
9871
  /**
9011
9872
  * @deprecated `mode` can be inferred from the bookkeeping configuration of a business
9012
9873
  */
@@ -9014,13 +9875,29 @@ declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/Ban
9014
9875
  mobileComponent?: MobileComponentType;
9015
9876
  stringOverrides?: BankTransactionsWithLinkedAccountsStringOverrides;
9016
9877
  }
9017
- export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, showLedgerBalance, showUnlinkItem, showBreakConnection, mode, showDescriptions, showReceiptUploads, showTooltips, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
9878
+ export const BankTransactionsWithLinkedAccounts: ({ title, showTitle, elevatedLinkedAccounts, mode, showBreakConnection, showDescriptions, showLedgerBalance, showReceiptUploads, showTags, showTooltips, showUnlinkItem, mobileComponent, stringOverrides, }: BankTransactionsWithLinkedAccountsProps) => import("react/jsx-runtime").JSX.Element;
9018
9879
  export {};
9019
9880
 
9020
9881
  }
9021
9882
  declare module '@layerfi/components/views/BankTransactionsWithLinkedAccounts/index' {
9022
9883
  export { BankTransactionsWithLinkedAccounts } from '@layerfi/components/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts';
9023
9884
 
9885
+ }
9886
+ declare module '@layerfi/components/views/Bills' {
9887
+ export type BillsStringOverrides = {
9888
+ title?: string;
9889
+ paidToggleOption?: string;
9890
+ unpaidToggleOption?: string;
9891
+ };
9892
+ export type ChartOfAccountsOptions = {
9893
+ templateAccountsEditable?: boolean;
9894
+ };
9895
+ export type BillsViewProps = {
9896
+ showTitle?: boolean;
9897
+ stringOverrides?: BillsStringOverrides;
9898
+ };
9899
+ export const unstable_BillsView: (props: BillsViewProps) => import("react/jsx-runtime").JSX.Element;
9900
+
9024
9901
  }
9025
9902
  declare module '@layerfi/components/views/BookkeepingOverview/BookkeepingOverview' {
9026
9903
  import { ProfitAndLossDetailedChartsStringOverrides } from '@layerfi/components/components/ProfitAndLossDetailedCharts/ProfitAndLossDetailedCharts';