/**
 * QuickBooks Online Node - Version 1
 * Discriminator: resource=transaction, operation=getReport
 */


interface Credentials {
  quickBooksOAuth2Api: CredentialReference;
}

export type QuickbooksV1TransactionGetReportParams = {
  resource: 'transaction';
  operation: 'getReport';
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simple?: boolean | Expression<boolean>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Accounts Payable Paid
     * @default All
     */
    appaid?: 'All' | 'Paid' | 'Unpaid' | Expression<string>;
    /** Accounts Receivable Paid
     * @default All
     */
    arpaid?: 'All' | 'Paid' | 'Unpaid' | Expression<string>;
    /** Cleared Status
     * @default Reconciled
     */
    cleared?: 'Cleared' | 'Uncleared' | 'Reconciled' | 'Deposited' | Expression<string>;
    /** Columns to return
     * @default []
     */
    columns?: Array<'account_name' | 'create_by' | 'create_date' | 'cust_msg' | 'dept_name' | 'due_date' | 'doc_num' | 'inv_date' | 'is_ap_paid' | 'is_cleared' | 'last_mod_by' | 'memo' | 'name' | 'other_account' | 'pmt_mthod' | 'is_no_post' | 'printed' | 'sales_cust1' | 'sales_cust2' | 'sales_cust3' | 'term_name' | 'tracking_num' | 'tx_date' | 'txn_type'>;
    /** Customer to filter results by. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    customer?: string[];
    /** Date Range (Custom)
     * @default {}
     */
    dateRangeCustom?: {
        /** Date Range Properties
     */
    dateRangeCustomProperties?: {
      /** Start date of the date range to filter results by
       */
      start_date?: string | Expression<string>;
      /** End date of the date range to filter results by
       */
      end_date?: string | Expression<string>;
    };
  };
    /** Predefined date range to filter results by
     * @default This Month
     */
    date_macro?: 'Today' | 'Yesterday' | 'This Week' | 'Last Week' | 'This Week-to-Date' | 'Last Week-to-Date' | 'Next Week' | 'Next 4 Weeks' | 'This Month' | 'Last Month' | 'This Month-to-Date' | 'Last Month-to-Date' | 'Next Month' | 'This Fiscal Quarter' | 'Last Fiscal Quarter' | 'This Fiscal Quarter-to-Date' | 'Last Fiscal Quarter-to-Date' | 'Next Fiscal Quarter' | 'This Fiscal Year' | 'Last Fiscal Year' | 'This Fiscal Year-to-Date' | 'Last Fiscal Year-to-Date' | 'Next Fiscal Year' | Expression<string>;
    /** Date Range for Creation Date (Custom)
     * @default {}
     */
    dateRangeCreationCustom?: {
        /** Creation Date Range Properties
     */
    dateRangeCreationCustomProperties?: {
      /** Start date of the account creation date range to filter results by
       */
      start_createdate?: string | Expression<string>;
      /** End date of the account creation date range to filter results by
       */
      end_createdate?: string | Expression<string>;
    };
  };
    /** Predefined report account creation date range
     * @default This Month
     */
    createdate_macro?: 'Today' | 'Yesterday' | 'This Week' | 'Last Week' | 'This Week-to-Date' | 'Last Week-to-Date' | 'Next Week' | 'Next 4 Weeks' | 'This Month' | 'Last Month' | 'This Month-to-Date' | 'Last Month-to-Date' | 'Next Month' | 'This Fiscal Quarter' | 'Last Fiscal Quarter' | 'This Fiscal Quarter-to-Date' | 'Last Fiscal Quarter-to-Date' | 'Next Fiscal Quarter' | 'This Fiscal Year' | 'Last Fiscal Year' | 'This Fiscal Year-to-Date' | 'Last Fiscal Year-to-Date' | 'Next Fiscal Year' | Expression<string>;
    /** Date Range for Due Date (Custom)
     * @default {}
     */
    dateRangeDueCustom?: {
        /** Due Date Range Properties
     */
    dateRangeDueCustomProperties?: {
      /** Start date of the due date range to filter results by
       */
      start_duedate?: string | Expression<string>;
      /** End date of the due date range to filter results by
       */
      end_duedate?: string | Expression<string>;
    };
  };
    /** Predefined due date range to filter results by
     * @default This Month
     */
    duedate_macro?: 'Today' | 'Yesterday' | 'This Week' | 'Last Week' | 'This Week-to-Date' | 'Last Week-to-Date' | 'Next Week' | 'Next 4 Weeks' | 'This Month' | 'Last Month' | 'This Month-to-Date' | 'Last Month-to-Date' | 'Next Month' | 'This Fiscal Quarter' | 'Last Fiscal Quarter' | 'This Fiscal Quarter-to-Date' | 'Last Fiscal Quarter-to-Date' | 'Next Fiscal Quarter' | 'This Fiscal Year' | 'Last Fiscal Year' | 'This Fiscal Year-to-Date' | 'Last Fiscal Year-to-Date' | 'Next Fiscal Year' | Expression<string>;
    /** Date Range for Modification Date (Custom)
     * @default {}
     */
    dateRangeModificationCustom?: {
        /** Modification Date Range Properties
     */
    dateRangeModificationCustomProperties?: {
      /** Start date of the account modification date range to filter results by
       */
      start_moddate?: string | Expression<string>;
      /** End date of the account modification date range to filter results by
       */
      end_moddate?: string | Expression<string>;
    };
  };
    /** Predefined account modifiction date range to filter results by
     * @default This Month
     */
    moddate_macro?: 'Today' | 'Yesterday' | 'This Week' | 'Last Week' | 'This Week-to-Date' | 'Last Week-to-Date' | 'Next Week' | 'Next 4 Weeks' | 'This Month' | 'Last Month' | 'This Month-to-Date' | 'Last Month-to-Date' | 'Next Month' | 'This Fiscal Quarter' | 'Last Fiscal Quarter' | 'This Fiscal Quarter-to-Date' | 'Last Fiscal Quarter-to-Date' | 'Next Fiscal Quarter' | 'This Fiscal Year' | 'Last Fiscal Year' | 'This Fiscal Year-to-Date' | 'Last Fiscal Year-to-Date' | 'Next Fiscal Year' | Expression<string>;
    /** Department to filter results by. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    department?: string[];
    /** Transaction document number to filter results by
     */
    docnum?: string | Expression<string> | PlaceholderValue;
    /** Transaction field to group results by
     * @default Account
     */
    group_by?: 'Account' | 'Customer' | 'Day' | 'Employee' | 'Location' | 'Month' | 'Name' | 'None' | 'Payment Method' | 'Quarter' | 'Transaction Type' | 'Vendor' | 'Week' | 'Year' | Expression<string>;
    /** Memo to filter results by. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    memo?: string[];
    /** Payment method to filter results by
     * @default Cash
     */
    payment_Method?: 'American Express' | 'Cash' | 'Check' | 'Dinners Club' | 'Discover' | 'Master Card' | 'Visa' | Expression<string>;
    /** Printed state to filter results by
     * @default Printed
     */
    printed?: 'Printed' | 'To_be_printed' | Expression<string>;
    /** Whether Quick Zoom URL information should be generated
     * @default true
     */
    qzurl?: boolean | Expression<boolean>;
    /** Column to sort results by
     * @default account_name
     */
    sort_by?: 'account_name' | 'create_by' | 'create_date' | 'cust_msg' | 'dept_name' | 'due_date' | 'doc_num' | 'inv_date' | 'is_ap_paid' | 'is_cleared' | 'last_mod_by' | 'memo' | 'name' | 'other_account' | 'pmt_mthod' | 'is_no_post' | 'printed' | 'sales_cust1' | 'sales_cust2' | 'sales_cust3' | 'term_name' | 'tracking_num' | 'tx_date' | 'txn_type' | Expression<string>;
    /** Sort Order
     * @default Ascend
     */
    sort_order?: 'Ascend' | 'Descend' | Expression<string>;
    /** Account type to filter results by
     * @default Bank
     */
    source_account_type?: 'AccountsPayable' | 'AccountsReceivable' | 'Bank' | 'CostOfGoodsSold' | 'CreditCard' | 'Equity' | 'Expense' | 'FixedAsset' | 'Income' | 'LongTermLiability' | 'NonPosting' | 'OtherAsset' | 'OtherCurrentAsset' | 'OtherCurrentLiability' | 'OtherExpense' | 'OtherIncome' | Expression<string>;
    /** Term to filter results by. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    term?: string[];
    /** Monetary amount to filter results by
     * @default 0
     */
    bothamount?: number | Expression<number>;
    /** Transaction type to filter results by
     * @default CreditCardCharge
     */
    transaction_type?: 'Bill' | 'BillPaymentCheck' | 'BillPaymentCreditCard' | 'BillableCharge' | 'CashPurchase' | 'Charge' | 'Check' | 'Credit' | 'CreditCardCharge' | 'CreditCardCredit' | 'CreditMemo' | 'CreditRefund' | 'Deposit' | 'Estimate' | 'GlobalTaxAdjustment' | 'GlobalTaxPayment' | 'InventoryQuantityAdjustment' | 'Invoice' | 'JournalEntry' | 'PurchaseOrder' | 'ReceivePayment' | 'SalesReceipt' | 'Service Tax Defer' | 'Service Tax Gross Adjustment' | 'Service Tax Partial Utilisation' | 'Service Tax Refund' | 'Service Tax Reversal' | 'Statement' | 'TimeActivity' | 'Transfer' | 'VendorCredit' | Expression<string>;
    /** Vendor to filter results by. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    vendor?: string[];
  };
};

export type QuickbooksV1TransactionGetReportNode = {
  type: 'n8n-nodes-base.quickbooks';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<QuickbooksV1TransactionGetReportParams>;
};