import { AccountBase } from '../../../entity/account/accountState'; import { InvoicingQboSettingsPayload } from '../../../entity/invoicing/invoicingCommonPayload'; /** * The QBO configuration page's local data. A client shape, not the wire one: the * page edits a flat `accountIdByMappingCode` map keyed by the config's mapping * codes, where the payload carries one field pair per slot and two shapes for * each. {@link entityToInvoicingQboSettingsLocalData} and * {@link invoicingQboSettingsLocalDataToPayload} convert at the boundary. */ export interface InvoicingQboSettingsLocalData { /** * Mapping code to the QuickBooks account id the picker selected. Keyed by the * config's own codes rather than a client-side list: the backend owns which * slots exist, so anything narrower silently drops the ones it has not heard * of. */ accountIdByMappingCode: Record; autoCreateItems: boolean; closedPeriodVoidAsCreditMemo: boolean; customerMatching: string; isSyncEnabled: boolean; /** ISO date, empty when unset — the picker clears to empty, not to null. */ syncStartDate: string; trackingCategoriesEnabled: boolean; } export declare const initialInvoicingQboSettingsLocalData: InvoicingQboSettingsLocalData; /** The settings response as the page edits it. */ export declare const entityToInvoicingQboSettingsLocalData: (qbo: InvoicingQboSettingsPayload | null | undefined) => InvoicingQboSettingsLocalData; /** * The local data as the request body. `accountForId` turns each picked id into * the whole account the service stores; it comes from the epic, which is where * the account list is in reach. */ export declare const invoicingQboSettingsLocalDataToPayload: (localData: InvoicingQboSettingsLocalData, accountForId: (accountId: string) => AccountBase | undefined) => InvoicingQboSettingsPayload;