import { APIClient, DataWrapper, type DataWrapperCtor, type OAuthGrantRequest } from '@awell-health/extensions-core';
import { type UpdateRecordInputType, type CreateRecordInputType, type CreateRecordResponseType, type GetRecordInputType, type GetRecordResponseType } from './schema';
export declare class SalesforceDataWrapper extends DataWrapper {
    private readonly apiVersion;
    constructor(token: string, baseUrl: string, opts: {
        apiVersion: string;
    });
    createRecord(input: CreateRecordInputType): Promise<CreateRecordResponseType>;
    updateRecord(input: UpdateRecordInputType): Promise<void>;
    getRecordShape(sObject: string): Promise<unknown>;
    getRecord(input: GetRecordInputType): Promise<GetRecordResponseType>;
}
interface SalesforceConstructorProps {
    authUrl: string;
    requestConfig: Omit<OAuthGrantRequest, 'grant_type'>;
    baseUrl: string;
    apiVersion: string;
}
export declare class SalesforceRestAPIClient extends APIClient<SalesforceDataWrapper> {
    readonly apiVersion: string;
    readonly ctor: DataWrapperCtor<SalesforceDataWrapper>;
    constructor({ authUrl, requestConfig, ...opts }: SalesforceConstructorProps);
    createRecord(input: CreateRecordInputType): Promise<CreateRecordResponseType>;
    updateRecord(input: UpdateRecordInputType): Promise<void>;
    getRecordShape(sObject: string): Promise<unknown>;
    getRecord(input: GetRecordInputType): Promise<GetRecordResponseType>;
}
export {};
