import { BaseAccountingAction } from '../../base/base-accounting-action';
import { UserInfo } from '@memberjunction/core';
import { CompanyIntegrationEntity } from '@memberjunction/core-entities';
import { ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
/**
 * Base class for all QuickBooks Online actions.
 * Handles QB-specific authentication and API interaction patterns.
 */
export declare abstract class QuickBooksBaseAction extends BaseAccountingAction {
    protected accountingProvider: string;
    protected integrationName: string;
    /**
     * QuickBooks API version
     */
    protected apiVersion: string;
    /**
     * QuickBooks minor version for API compatibility
     */
    protected minorVersion: string;
    /**
     * Makes an authenticated request to QuickBooks Online API
     */
    protected makeQBORequest<T = any>(endpoint: string, method?: 'GET' | 'POST' | 'PUT' | 'DELETE', body?: any, contextUser?: UserInfo): Promise<T>;
    /**
     * Handles QuickBooks query language requests
     */
    protected queryQBO<T = any>(query: string, contextUser: UserInfo): Promise<T>;
    /**
     * Converts QuickBooks date format to standard ISO format
     */
    protected parseQBODate(qboDate: string): Date;
    /**
     * Formats date for QuickBooks API
     */
    protected formatQBODate(date: Date): string;
    /**
     * Maps QuickBooks account types to standard accounting categories
     */
    protected mapAccountType(qboAccountType: string): string;
    /**
     * Gets the appropriate QuickBooks API URL based on configuration
     */
    protected getQuickBooksAPIUrl(integration: CompanyIntegrationEntity): Promise<string>;
    /**
     * Store the params for use in other methods
     */
    private _params;
    /**
     * Override the required abstract method
     */
    protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
}
//# sourceMappingURL=quickbooks-base.action.d.ts.map