import { PlaidApi } from 'plaid';
export declare class PlaidHelpers {
    /**
     * Get Plaid environment URL
     */
    static getEnvironmentUrl(environment: string): string;
    /**
     * Format transaction amount (Plaid returns negative for outflow)
     */
    static formatTransactionAmount(amount: number): {
        amount: number;
        type: 'income' | 'expense';
    };
    /**
     * Parse account IDs from comma-separated string
     */
    static parseAccountIds(accountIds: string): string[] | undefined;
    /**
     * Format date for Plaid API (YYYY-MM-DD)
     */
    static formatDate(dateString: string): string;
    /**
     * Enhanced categorization mapping
     */
    static enhanceCategories(transaction: any): any;
    /**
     * Detect recurring transactions
     */
    static detectRecurring(description: string): boolean;
    /**
     * Calculate spending score based on amount and category
     */
    static calculateSpendingScore(amount: number, categories: string[]): number;
}
/**
 * Create a Link token for Plaid Link initialization
 */
export declare function createLinkToken(client: PlaidApi, credentials: any, userId?: string, products?: string[]): Promise<string>;
/**
 * Exchange a public token for an access token
 */
export declare function exchangePublicToken(client: PlaidApi, publicToken: string): Promise<{
    accessToken: string;
    itemId: string;
}>;
/**
 * Get the appropriate access token based on authentication method
 */
export declare function getAccessToken(client: PlaidApi, credentials: any): Promise<string>;
/**
 * Check if operation requires access token
 */
export declare function requiresAccessToken(resource: string, operation: string): boolean;
