import { MomentoErrorCode, SdkError } from '../../errors';
export declare abstract class ResponseBase {
    toString(): string;
}
type Constructor = new (...args: any[]) => {};
export interface IResponseError {
    message(): string;
    innerException(): SdkError;
    errorCode(): MomentoErrorCode;
    toString(): string;
}
export interface IResponseSuccess {
    is_success: boolean;
}
export interface IResponseMiss {
    is_miss: boolean;
}
export interface IListResponseSuccess {
    listLength(): number;
}
export interface IResponseSubscription {
    is_subscribed: boolean;
}
export declare abstract class BaseResponseError extends ResponseBase {
    protected readonly _innerException: SdkError;
    protected constructor(innerException: SdkError);
    message(): string;
    innerException(): SdkError;
    errorCode(): MomentoErrorCode;
    toString(): string;
}
export declare function ResponseError<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        _innerException: SdkError;
        message(): string;
        innerException(): SdkError;
        errorCode(): MomentoErrorCode;
        toString(): string;
    };
} & TBase;
export declare function ResponseHit<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {};
} & TBase;
export declare abstract class BaseResponseMiss extends ResponseBase {
    readonly is_miss: boolean;
}
export declare function ResponseMiss<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        readonly is_miss: boolean;
    };
} & TBase;
export declare abstract class BaseResponseSuccess extends ResponseBase {
    readonly is_success: boolean;
}
export declare abstract class BaseResponseSubscription extends ResponseBase {
    readonly is_subscribed: boolean;
}
export declare function ResponseSuccess<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        readonly is_success: boolean;
    };
} & TBase;
export declare function ResponseFound<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {};
} & TBase;
export declare function ResponseNotFound<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {};
} & TBase;
export {};
