/**
 * Validation utilities for Expo Finance Kit
 * Ensures data integrity and type safety
 */
import { Account, AccountQueryOptions, Transaction, TransactionQueryOptions, AccountBalance, BalanceQueryOptions, AccountType, CreditDebitIndicator, AuthorizationStatus } from '../ExpoFinanceKit.types';
/**
 * Validates account query options
 * @param options - Options to validate
 * @throws {FinanceKitError} If validation fails
 */
export declare function validateAccountQueryOptions(options: AccountQueryOptions): void;
/**
 * Validates transaction query options
 * @param options - Options to validate
 * @throws {FinanceKitError} If validation fails
 */
export declare function validateTransactionQueryOptions(options: TransactionQueryOptions): void;
/**
 * Validates balance query options
 * @param options - Options to validate
 * @throws {FinanceKitError} If validation fails
 */
export declare function validateBalanceQueryOptions(options: BalanceQueryOptions): void;
/**
 * Transforms raw account data from native module
 * @param rawAccount - Raw account data
 * @returns Transformed account object
 */
export declare function transformAccount(rawAccount: any): Account;
/**
 * Transforms raw transaction data from native module
 * @param rawTransaction - Raw transaction data
 * @returns Transformed transaction object
 */
export declare function transformTransaction(rawTransaction: any): Transaction;
/**
 * Normalizes transaction amount based on account type and credit/debit indicator
 * @param amount - The raw transaction amount
 * @param accountType - The type of account (asset or liability)
 * @param creditDebitIndicator - Whether the transaction is a credit or debit
 * @returns Normalized amount (positive for increases in value, negative for decreases)
 */
export declare function normalizeTransactionAmount(amount: number, accountType: AccountType, creditDebitIndicator: CreditDebitIndicator): number;
/**
 * Transforms raw balance data from native module
 * @param rawBalance - Raw balance data
 * @returns Transformed balance object
 */
export declare function transformBalance(rawBalance: any): AccountBalance;
/**
 * Validates a currency code
 * @param code - Currency code to validate
 * @returns Boolean indicating validity
 */
export declare function isValidCurrencyCode(code: string): boolean;
/**
 * Validates an account ID (UUID format)
 * @param id - ID to validate
 * @returns Boolean indicating validity
 */
export declare function isValidAccountId(id: string): boolean;
/**
 * Sanitizes transaction description
 * @param description - Description to sanitize
 * @returns Sanitized description
 */
export declare function sanitizeTransactionDescription(description: string): string;
/**
 * Formats amount for display
 * @param amount - Amount to format
 * @param currencyCode - Currency code
 * @returns Formatted amount string
 */
export declare function formatAmount(amount: number, currencyCode: string): string;
/**
 * Type guard for checking if a value is a valid AuthorizationStatus
 */
export declare const isAuthorizationStatus: (value: any) => value is AuthorizationStatus;
/**
 * Type guard for checking if a value is a valid Transaction
 */
export declare const isTransaction: (value: any) => value is Transaction;
/**
 * Type guard for checking if a value is a valid Account
 */
export declare const isAccount: (value: any) => value is Account;
//# sourceMappingURL=validators.d.ts.map