import { SdkError } from '../../errors';
import { BaseResponseError, BaseResponseMiss, ResponseBase } from './response-base';
import { CacheGetWithHashResponse } from './enums';
interface IResponse {
    value(): string | undefined;
    hash(): string | undefined;
    readonly type: CacheGetWithHashResponse;
}
/**
 * Indicates that the requested data was successfully retrieved from the cache.  Provides
 * `value*` and `hash*` accessors to retrieve the data in the appropriate format.
 */
export declare class Hit extends ResponseBase implements IResponse {
    readonly type: CacheGetWithHashResponse.Hit;
    private readonly _value;
    private readonly _hash;
    constructor(value: Uint8Array, hash: Uint8Array);
    /**
     * Returns the data as a utf-8 string, decoded from the underlying byte array.
     * @returns string
     */
    value(): string;
    /**
     * Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
     * @returns string
     */
    hash(): string;
    /**
     * Returns the data as a utf-8 string, decoded from the underlying byte array.
     * @returns string
     */
    valueString(): string;
    /**
     * Returns the data as a byte array.
     * @returns {Uint8Array}
     */
    valueUint8Array(): Uint8Array;
    /**
     * Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
     * @returns string
     */
    hashString(): string;
    /**
     * Returns the hash of the data as a byte array.
     * @returns {Uint8Array}
     */
    hashUint8Array(): Uint8Array;
    toString(): string;
}
/**
 * Indicates that the requested data was not available in the cache.
 */
export declare class Miss extends BaseResponseMiss implements IResponse {
    readonly type: CacheGetWithHashResponse.Miss;
    constructor();
    value(): undefined;
    hash(): undefined;
}
/**
 * Indicates that an error occurred during the cache get 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 {
    readonly type: CacheGetWithHashResponse.Error;
    constructor(_innerException: SdkError);
    value(): undefined;
    hash(): undefined;
}
export type Response = Hit | Miss | Error;
export {};
