export declare enum MomentoErrorCode {
    INVALID_ARGUMENT_ERROR = "INVALID_ARGUMENT_ERROR",
    UNKNOWN_SERVICE_ERROR = "UNKNOWN_SERVICE_ERROR",
    CACHE_ALREADY_EXISTS_ERROR = "ALREADY_EXISTS_ERROR",
    /** @deprecated use CACHE_ALREADY_EXISTS_ERROR instead */
    ALREADY_EXISTS_ERROR = "ALREADY_EXISTS_ERROR",
    STORE_ALREADY_EXISTS_ERROR = "ALREADY_EXISTS_ERROR",
    CACHE_NOT_FOUND_ERROR = "NOT_FOUND_ERROR",
    /** @deprecated use CACHE_NOT_FOUND_ERROR instead */
    NOT_FOUND_ERROR = "NOT_FOUND_ERROR",
    STORE_NOT_FOUND_ERROR = "STORE_NOT_FOUND_ERROR",
    STORE_ITEM_NOT_FOUND_ERROR = "STORE_ITEM_NOT_FOUND_ERROR",
    INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
    PERMISSION_ERROR = "PERMISSION_ERROR",
    AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
    CANCELLED_ERROR = "CANCELLED_ERROR",
    CONNECTION_ERROR = "CONNECTION_ERROR",
    LIMIT_EXCEEDED_ERROR = "LIMIT_EXCEEDED_ERROR",
    BAD_REQUEST_ERROR = "BAD_REQUEST_ERROR",
    TIMEOUT_ERROR = "TIMEOUT_ERROR",
    SERVER_UNAVAILABLE = "SERVER_UNAVAILABLE",
    CLIENT_RESOURCE_EXHAUSTED = "CLIENT_RESOURCE_EXHAUSTED",
    FAILED_PRECONDITION_ERROR = "FAILED_PRECONDITION_ERROR",
    UNKNOWN_ERROR = "UNKNOWN_ERROR"
}
export declare class MomentoGrpcErrorDetails {
    readonly code: number;
    readonly details: string;
    readonly metadata?: object;
    constructor(code: number, details: string, metadata?: object);
}
export declare class MomentoErrorTransportDetails {
    readonly grpc: MomentoGrpcErrorDetails;
    constructor(grpc: MomentoGrpcErrorDetails);
}
/**
 * Base class for all errors thrown by the sdk
 */
export declare abstract class SdkError extends Error {
    protected readonly _errorCode: MomentoErrorCode;
    protected readonly _messageWrapper: string;
    protected readonly _transportDetails: MomentoErrorTransportDetails;
    constructor(message: string, code?: number, metadata?: object | undefined, stack?: string | undefined);
    wrappedErrorMessage(): string;
    errorCode(): MomentoErrorCode;
    transportDetails(): MomentoErrorTransportDetails;
}
/**
 * Error that occurs when trying to create a cache with the same name as an existing cache. To resolve this error,
 * either delete the existing cache and make a new one, or change the name of the cache you are trying to create to
 * one that doesn't already exist
 */
export declare class CacheAlreadyExistsError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error that occurs when trying to create a store with the same name as an existing cache. To resolve this error,
 * either delete the existing store and make a new one, or change the name of the store you are trying to create to
 * one that doesn't already exist
 */
export declare class StoreAlreadyExistsError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error when authentication with Cache Service fails
 */
export declare class AuthenticationError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error raised in response to an invalid request
 */
export declare class BadRequestError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error when an operation with Cache Service was cancelled
 */
export declare class CancelledError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error when there's a failure to connect to Momento servers.
 */
export declare class ConnectionError extends SdkError {
    _errorCode: MomentoErrorCode;
}
/**
 * Error raised when system in not in a state required for the operation's success
 */
export declare class FailedPreconditionError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Cache Service encountered an unexpected exception while trying to fulfill the request
 */
export declare class InternalServerError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Represents errors thrown when invalid parameters are passed to the Momento Cache
 */
export declare class InvalidArgumentError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
declare enum LimitExceededMessageWrapper {
    TOPIC_SUBSCRIPTIONS_LIMIT_EXCEEDED = "Topic subscriptions limit exceeded for this account",
    OPERATIONS_RATE_LIMIT_EXCEEDED = "Request rate limit exceeded for this account",
    THROUGHPUT_RATE_LIMIT_EXCEEDED = "Bandwidth limit exceeded for this account",
    REQUEST_SIZE_LIMIT_EXCEEDED = "Request size limit exceeded for this account",
    ITEM_SIZE_LIMIT_EXCEEDED = "Item size limit exceeded for this account",
    ELEMENT_SIZE_LIMIT_EXCEEDED = "Element size limit exceeded for this account",
    UNKNOWN_LIMIT_EXCEEDED = "Limit exceeded for this account"
}
/**
 * Error when calls are throttled due to request limit rate
 */
export declare class LimitExceededError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: LimitExceededMessageWrapper;
    private errCause;
    constructor(message: string, code?: number, metadata?: object | undefined, stack?: string | undefined, errCause?: string);
    private determineMessageWrapper;
}
/**
 * Error that occurs when trying to get a cache that doesn't exist. To resolve, make sure that the cache you are trying
 * to get exists. If it doesn't create it first and then try again
 */
export declare class CacheNotFoundError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error that occurs when trying to get a store that doesn't exist. To resolve, make sure that the store you are trying
 * to get exists. If it doesn't create it first and then try again.
 */
export declare class StoreNotFoundError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error that occurs when trying to get an item from store that doesn't exist. To resolve, make sure that the item you are trying
 * to get exists. If it doesn't create it first and then try again.
 */
export declare class StoreItemNotFoundError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Insufficient permissions to perform an operation on Cache Service
 */
export declare class PermissionError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Server was unable to handle the request.
 */
export declare class ServerUnavailableError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error when an operation did not complete in time
 */
export declare class TimeoutError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error raised when the underlying cause in unknown
 */
export declare class UnknownError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error raised when the service returns an unknown response
 */
export declare class UnknownServiceError extends SdkError {
    _errorCode: MomentoErrorCode;
    _messageWrapper: string;
}
/**
 * Error raised when a client resource is exhausted, such as memory or number of subscriptions (stream connections).
 */
export declare class ClientResourceExhaustedError extends SdkError {
    _errorCode: MomentoErrorCode;
    constructor(message?: string | undefined);
}
export {};
