/**
 * Transaction monitoring module for Expo Finance Kit
 * Handles real-time transaction change streams from FinanceKit
 */
import { TransactionsChangedPayload } from '../ExpoFinanceKit.types';
/**
 * Callback type for transaction change events
 */
export type TransactionChangeCallback = (payload: TransactionsChangedPayload) => void;
/**
 * Transaction monitoring manager
 * Provides real-time updates when transactions are inserted, updated, or deleted
 */
declare class TransactionMonitor {
    private eventEmitter;
    private listeners;
    private isMonitoring;
    constructor();
    /**
     * Start monitoring transactions for specified accounts
     * If no account IDs are provided, monitors all accounts
     * @param accountIds - Optional array of account IDs to monitor
     * @returns Promise that resolves when monitoring starts
     */
    startMonitoring(accountIds?: string[]): Promise<void>;
    /**
     * Stop monitoring transactions
     * @returns Promise that resolves when monitoring stops
     */
    stopMonitoring(): Promise<void>;
    /**
     * Add a listener for transaction changes
     * @param callback - Callback function to invoke when transactions change
     * @returns Unsubscribe function
     */
    addListener(callback: TransactionChangeCallback): () => void;
    /**
     * Remove all listeners
     */
    removeAllListeners(): void;
    /**
     * Check if monitoring is currently active
     */
    get monitoring(): boolean;
}
export declare const transactionMonitor: TransactionMonitor;
/**
 * Start monitoring transactions for specified accounts
 * @param accountIds - Optional array of account IDs to monitor
 */
export declare function startMonitoringTransactions(accountIds?: string[]): Promise<void>;
/**
 * Stop monitoring transactions
 */
export declare function stopMonitoringTransactions(): Promise<void>;
/**
 * Add a listener for transaction changes
 * @param callback - Callback function to invoke when transactions change
 * @returns Unsubscribe function
 */
export declare function addTransactionChangeListener(callback: TransactionChangeCallback): () => void;
/**
 * Remove all transaction change listeners
 */
export declare function removeAllTransactionChangeListeners(): void;
/**
 * Check if transaction monitoring is currently active
 */
export declare function isMonitoringTransactions(): boolean;
/**
 * Clear history token for an account (resets monitoring state)
 * @param accountId - Account ID to clear history token for
 */
export declare function clearHistoryToken(accountId: string): Promise<void>;
/**
 * Set the app group identifier for background delivery
 * This should match the identifier used in your Expo config plugin
 * @param identifier - App group identifier (e.g., "group.com.yourapp.financekit")
 */
export declare function setAppGroupIdentifier(identifier: string): Promise<void>;
/**
 * Process pending changes that were stored during background sync
 * This is automatically called when the app becomes active, but can be called manually
 */
export declare function processPendingChanges(): Promise<void>;
export {};
//# sourceMappingURL=monitoring.d.ts.map