export = SnowflakeService;
/**
 * Creates a new SnowflakeService instance.
 *
 * @param {Object} connectionConfig
 * @param {Object} httpClient
 * @param {Object} [config]
 * @constructor
 */
declare function SnowflakeService(connectionConfig: Object, httpClient: Object, config?: Object): void;
declare class SnowflakeService {
    /**
     * Creates a new SnowflakeService instance.
     *
     * @param {Object} connectionConfig
     * @param {Object} httpClient
     * @param {Object} [config]
     * @constructor
     */
    constructor(connectionConfig: Object, httpClient: Object, config?: Object);
    authenticator: Object;
    /**
     * Set the session id for the current SnowflakeService
     * @type {function(string|number): void}
     */
    setSessionId: (arg0: string | number) => void;
    /**
     * Get the session id.
     * @returns {number}
     */
    getSessionId: () => number;
    /**
     * Transitions to the Pristine state.
     *
     * {Object} [transitionContext]
     */
    transitionToPristine: (transitionContext: any) => void;
    /**
     * Transitions to the Connecting state.
     *
     * {Object} [transitionContext]
     */
    transitionToConnecting: (transitionContext: any) => void;
    /**
     * Transitions to the Connected state.
     *
     * {Object} [transitionContext]
     */
    transitionToConnected: (transitionContext: any) => void;
    /**
     * Transitions to the Renewing state.
     *
     * {Object} [transitionContext]
     */
    transitionToRenewing: (transitionContext: any) => void;
    /**
     * Transitions to the Disconnected state.
     *
     * {Object} [transitionContext]
     */
    transitionToDisconnected: (transitionContext: any) => void;
    /**
     * Returns a configuration object that can be passed to the SnowflakeService
     * constructor to get an equivalent SnowflakeService object.
     *
     * @returns {Object}
     */
    getConfig: () => Object;
    /**
     * Establishes a connection to Snowflake.
     *
     * @param {Object} options
     */
    connect: (options: Object) => void;
    /**
     * Issues a connect-continue request to Snowflake.
     *
     * @param {Object} [options]
     */
    continue: (options?: Object) => void;
    /**
     * Issues a generic request to Snowflake.
     *
     * @param {Object} options
     */
    request: (options: Object) => void;
    /**
     * Issues a generic async request to Snowflake.
     *
     * @param {Object} options
     */
    requestAsync: (options: Object) => Promise<any>;
    /**
     * Terminates the current connection to Snowflake.
     *
     * @param {Object} options
     */
    destroy: (options: Object) => void;
    /**
     * Appends a request operation to the queue.
     *
     * @param {Object} options
     */
    enqueueRequest: (options: Object) => void;
    /**
     * Appends a destroy operation to the queue.
     *
     * @param {Object} options
     */
    enqueueDestroy: (options: Object) => void;
    /**
     * Executes all the operations in the queue.
     */
    drainOperationQueue: () => void;
    isConnected: () => boolean;
    getServiceName: () => any;
    getClientSessionKeepAlive: () => any;
    getClientSessionKeepAliveHeartbeatFrequency: () => any;
    getJsTreatIntegerAsBigInt: () => any;
    getAuthenticator: () => Object;
    /**
     * Issues a post request to Snowflake.
     *
     * @param {Object} options
     */
    postAsync: (options: Object) => Promise<any>;
    getQueryContextDTO: () => any;
    deserializeQueryContext: (data: any) => void;
    clearCache: () => void;
    /** @type {function(number): void} */
    initializeQueryContextCache: (arg0: number) => void;
    getQueryContextCacheSize: () => any;
}
