import type { Logger } from '@b64hub/sfpm-core'; import type { Connection } from '@salesforce/core'; import type { FieldTrackingResult, FieldTrackingType } from './types.js'; /** * Enables field tracking (history or feed) on custom fields in a * Salesforce org. * * The enabler: * 1. Queries the org to find which fields already have tracking enabled * 2. Filters out already-enabled fields * 3. Reads the remaining field metadata from the org via the Metadata API * 4. Sets the tracking property to `true` on each field * 5. Updates the metadata back to the org * * Fields are processed in batches of {@link METADATA_BATCH_SIZE} to * respect Metadata API limits. */ export declare class FieldTrackingEnabler { private readonly connection; private readonly trackingType; private readonly logger?; private readonly config; constructor(connection: Connection, trackingType: FieldTrackingType, logger?: Logger | undefined); /** * Enable tracking on the specified fields. * * @param qualifiedFieldNames - Field API names in `Object.Field` format * (e.g., `['Account.MyField__c', 'Contact.Status__c']`) * @returns Result summary with counts of enabled and skipped fields */ enableTracking(qualifiedFieldNames: string[]): Promise; /** * Process a single batch of fields: read from org, enable tracking, update. */ private processBatch; /** * Query the org for fields that already have tracking enabled on the * specified objects. */ private queryEnabledFields; /** * Read field metadata from the org, enable tracking, and update. * Processes in batches to respect Metadata API limits. */ private updateFields; }