import { ResponseBase, BaseResponseMiss, BaseResponseError } from './response-base';
import { SdkError } from '../../errors';
import { CacheSetFetchResponse } from './enums';
interface IResponse {
    value(): string[] | undefined;
    readonly type: CacheSetFetchResponse;
}
/**
 * Indicates that the requested data was successfully retrieved from the cache.  Provides
 * `value*` accessors to retrieve the data in the appropriate format.
 */
export declare class Hit extends ResponseBase implements IResponse {
    private readonly elements;
    readonly type: CacheSetFetchResponse.Hit;
    constructor(elements: Uint8Array[]);
    /**
     * Returns the data as a Set whose values are utf-8 strings, decoded from the underlying byte arrays.  This
     * is a convenience alias for {valueSetString}.
     * @returns {Set<string>}
     */
    valueSet(): Set<string>;
    /**
     * Returns the data as a Set whose values are utf-8 strings, decoded from the underlying byte arrays.
     * @returns {Set<string>}
     */
    valueSetString(): Set<string>;
    /**
     * Returns the data as a Set whose values are byte arrays.
     * @returns {Set<Uint8Array>}
     */
    valueSetUint8Array(): Set<Uint8Array>;
    /**
     * Returns the data as an Array whose values are utf-8 strings, decoded from the underlying byte arrays.
     * This accessor is provided because Arrays are sometimes easier to work with in TypeScript/JavaScript than Sets are.
     * This is a convenience alias for {valueArrayString}.
     * @returns {string[]}
     */
    value(): string[];
    /**
     * Returns the data as an Array whose values are utf-8 strings, decoded from the underlying byte arrays.
     * This accessor is provided because Arrays are sometimes easier to work with in TypeScript/JavaScript than Sets are.
     * This is a convenience alias for {valueArrayString}.
     * @returns {string[]}
     */
    valueArray(): string[];
    /**
     * Returns the data as an Array whose values are utf-8 strings, decoded from the underlying byte arrays.
     * This accessor is provided because Arrays are sometimes easier to work with in TypeScript/JavaScript than Sets are.
     * @returns {string[]}
     */
    valueArrayString(): string[];
    /**
     * Returns the data as an Array whose values are byte arrays.
     * This accessor is provided because Arrays are sometimes easier to work with in TypeScript/JavaScript than Sets are.
     * @returns {Uint8Array[]}
     */
    valueArrayUint8Array(): Uint8Array[];
    toString(): string;
}
/**
 * Indicates that the requested data was not available in the cache.
 */
export declare class Miss extends BaseResponseMiss {
    readonly type: CacheSetFetchResponse.Miss;
    value(): undefined;
}
/**
 * Indicates that an error occurred during the set fetch request.
 *
 * This response object includes the following fields that you can use to determine
 * how you would like to handle the error:
 *
 * - `errorCode()` - a unique Momento error code indicating the type of error that occurred.
 * - `message()` - a human-readable description of the error
 * - `innerException()` - the original error that caused the failure; can be re-thrown.
 */
export declare class Error extends BaseResponseError implements IResponse {
    constructor(_innerException: SdkError);
    readonly type: CacheSetFetchResponse.Error;
    value(): undefined;
}
export type Response = Hit | Miss | Error;
export {};
