import { IConversationUtil } from './conversation-util/IConversationUtil';
import { ConnectToSalesforce } from './crm-clients/salesforce';
import { IGDPRUtil } from './GDPR/IGDPRUtil';
import { ILpClient } from './lp-client/LpClient';
import { ISDEUtil } from './SDE-util/ISDEUtil';
import { ISecretClient } from './secret-storage/IsecretClient';
import { IFaaSContextServiceClientConfig, IFaaSContextServiceClient } from './context-service-client/IFaaSContextServiceClient';
export { ErrorCodes } from './errors/errorCodes';
export { SecretError } from './errors/secretError';
export { LpServices } from './lp-client/LpServices';
export { ConversationContentTypes } from './conversation-util/ConversationContentTypes';
export { SDETypes } from './SDE-util/SDETypes';
export declare class Toolbelt {
    private static csdsClient;
    /**
     * Returns an Salesforce Client, that is configured to work with the proxy.
     */
    static SFClient(): {
        connectToSalesforce: typeof ConnectToSalesforce;
    };
    /**
     * Returns an HTTP CLient, that is configured to work with the proxy.
     * It is based on request-promise and shares the same interface.
     */
    static HTTPClient(): (params1: any, params2?: any) => Promise<any>;
    /**
     * Returns an Secret Client, which is setup to allow read and update access
     * to the secret storage of the Site ID.
     */
    static SecretClient(): ISecretClient;
    /**
     * Returns a new Conversation Util, which is configured based on the provided apiCredentials.
     * @param apiCredentials needed to acces conversation data in Live Engage
     */
    static ConversationUtil(): IConversationUtil;
    static SDEUtil(): ISDEUtil;
    private static lazyInitCsdsClient;
    /**
     * Returns GDPR Util, which can be used for GDPR related functionaliy such as deleting files of a conversation.
     */
    static GDPRUtil(): IGDPRUtil;
    static LpClient(): ILpClient;
    /**
     * Returns a Context Service Client which can be used to interact with the
     * Context Session Store.
     * @param {IFaaSContextServiceClientConfig} config Config Object in which the account ID for which the Client
     * will be used and a key for the Context Session Store API need to be provided
     */
    static ContextServiceClient(config: IFaaSContextServiceClientConfig): IFaaSContextServiceClient;
}
