import { SdkError } from '../../errors';
import { BaseResponseError, ResponseBase } from './response-base';
import { CacheSetIfAbsentOrHashNotEqualResponse } from './enums';
interface IResponse {
    readonly type: CacheSetIfAbsentOrHashNotEqualResponse;
}
/**
 * Indicates either the key does not exist and the value was set or, the key exists
 * and hash value of the stored item is not equal to the hash value supplied and the value was set.
 */
export declare class Stored extends ResponseBase implements IResponse {
    readonly type: CacheSetIfAbsentOrHashNotEqualResponse.Stored;
    private readonly _hash;
    constructor(hash: 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;
}
/**
 * Indicates the key exists but the hash value is equal to the hash value supplied and no value was set.
 */
export declare class NotStored extends ResponseBase implements IResponse {
    readonly type: CacheSetIfAbsentOrHashNotEqualResponse.NotStored;
}
/**
 * Indicates that an error occurred during the CacheSetIfAbsentOrHashNotEqual 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: CacheSetIfAbsentOrHashNotEqualResponse.Error;
}
export type Response = Stored | NotStored | Error;
export {};
