import { AuthObject, Field, Module, RegionKeys } from './types';
import { HttpClient, ApiResponse } from '../../network/clients/types';
declare class ZOHOAPI {
    authObject: AuthObject;
    httpClient: HttpClient;
    constructor(authObject: AuthObject);
    private getAuthHeader;
    private refreshToken;
    executeGetRequest<T>(url: string): Promise<ApiResponse<T>>;
}
export default class ZOHO {
    zohoAPI: ZOHOAPI;
    constructor(authObject: AuthObject);
    private static validateAuthObject;
    fetchDynamicFields({ moduleName, systemRequiredOnly, }: {
        moduleName: string;
        systemRequiredOnly?: boolean;
    }): Promise<ApiResponse<{
        fields: Field[];
    }>>;
    fetchModules({ upsertOnly, }?: {
        upsertOnly?: boolean;
    }): Promise<ApiResponse<{
        modules: Module[];
    }>>;
    static fetchModuleWiseDuplicateCheckField(moduleName: string): string[];
    static fetchModuleWiseMandatoryFields(moduleName: string): string[];
    static getBaseRecordUrl({ dataCenter, moduleName, }: {
        dataCenter?: RegionKeys;
        moduleName: string;
    }): string;
}
export {};
//# sourceMappingURL=zoho.d.ts.map