import { ModifiedResponse, RequestClient, RefreshAccessTokenResult, StatsContext } from '@segment/actions-core';
import type { GenericPayload } from './sf-types';
import { DynamicFieldResponse } from '@segment/actions-core';
import { Settings } from './generated-types';
import { Logger } from '@segment/actions-core/destination-kit';
export declare const generateSalesforceRequest: (settings: Settings, request: RequestClient) => Promise<(<Data = unknown>(url: string, options?: import("@segment/actions-core").RequestOptions) => Promise<ModifiedResponse<Data>>)>;
export declare const authenticateWithPassword: (username: string, auth_password: string, security_token?: string, isSandbox?: boolean) => Promise<RefreshAccessTokenResult>;
export default class Salesforce {
    instanceUrl: string;
    request: RequestClient;
    constructor(instanceUrl: string, request: RequestClient);
    createRecord: (payload: GenericPayload, sobject: string) => Promise<ModifiedResponse<unknown>>;
    updateRecord: (payload: GenericPayload, sobject: string) => Promise<ModifiedResponse<unknown>>;
    upsertRecord: (payload: GenericPayload, sobject: string) => Promise<ModifiedResponse<unknown>>;
    deleteRecord: (payload: GenericPayload, sobject: string) => Promise<ModifiedResponse<unknown>>;
    bulkHandler: (payloads: GenericPayload[], sobject: string, logging?: {
        shouldLog: boolean;
        logger?: Logger;
        stats?: StatsContext;
    }) => Promise<ModifiedResponse<unknown> | undefined>;
    bulkHandlerWithSyncMode: (payloads: GenericPayload[], sobject: string, syncMode: string | undefined, logging?: {
        shouldLog: boolean;
        logger?: Logger;
        stats?: StatsContext;
    }) => Promise<ModifiedResponse<unknown> | undefined>;
    customObjectName: () => Promise<DynamicFieldResponse>;
    private bulkInsert;
    private bulkUpsert;
    private bulkUpdate;
    private handleBulkJob;
    private createBulkJob;
    private uploadBulkCSV;
    private closeBulkJob;
    private baseUpdate;
    private baseDelete;
    private buildJSONData;
    private escapeQuotes;
    private removeInvalidChars;
    private typecast;
    private buildQuery;
    private lookupTraits;
}
