import DataLoader from 'dataloader';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { TransactionsProvider } from '../../transactions/providers/transactions.provider.js';
import type { ChargeSecurityProto } from '../types.js';
export declare class ForeignSecuritiesProvider {
    private db;
    private transactionsProvider;
    constructor(db: TenantAwareDBClient, transactionsProvider: TransactionsProvider);
    private batchSecuritiesByKeys;
    securityByKeyLoader: DataLoader<string, import("../types.js").IGetSecuritiesByKeysResult | null, string>;
    /**
     * The securities a charge's transactions reference, keyed off the security key each
     * description carries. Keys with no ingested row are still returned, with a null
     * `details`, so a stale or missing scrape is visible instead of silently dropping data.
     */
    getChargeSecurities(chargeId: string): Promise<ChargeSecurityProto[]>;
}
