export function SnowflakeFileEncryptionMaterial(key: any, qid: any, smkid: any): {
    queryStageMasterKey: any;
    queryId: any;
    smkId: string;
};
/**
 * Creates a remote storage utility object.
 *
 * @returns {Object}
 * @constructor
 */
export function RemoteStorageUtil(connectionConfig: any): Object;
export class RemoteStorageUtil {
    /**
     * Creates a remote storage utility object.
     *
     * @returns {Object}
     * @constructor
     */
    constructor(connectionConfig: any);
    /**
     * Get storage type based on location type.
     *
     * @param {String} type
     *
     * @returns {Object}
     */
    getForStorageType: (type: string) => Object;
    /**
     * Create the client based on the location type.
     */
    createClient: (stageInfo: any, useAccelerateEndpoint?: boolean) => any;
    /**
     * Encrypt then upload one file stream.
     *
     * @param {Object} meta
     *
     * @returns {null}
     */
    uploadOneFileStream: (meta: Object) => null;
    /**
     * Encrypt then upload one file.
     *
     * @param {Object} meta
     *
     * @returns {null}
     */
    uploadOneFile: (meta: Object) => null;
    /**
     * Attempt upload of a file and retry if fails.
     *
     * @param {Object} meta
     *
     * @returns {null}
     */
    uploadOneFileWithRetry: (meta: Object) => null;
    /**
     * Download a file.
     *
     * @param {Object} meta
     *
     * @returns {null}
     */
    downloadOneFile: (meta: Object) => null;
}
