import { JSONError, JSONErrorParams } from "./JSONError";
import { RealmType } from "../realms/RealmType";
export declare abstract class RealmProblem extends JSONError {
    readonly path: string;
    code: number;
    private _type;
    type: string;
    toJSON(): any;
    constructor(params: JSONErrorParams, defaultTitle: string);
}
export declare class GenericRealmProblem extends RealmProblem {
    constructor(code: number, params: JSONErrorParams);
}
export declare class InvalidParameters extends RealmProblem {
    readonly path: string;
    readonly code: number;
    readonly invalidParams: {
        name: string;
        reason: string;
    }[];
    constructor(...parameters: ({
        name: string;
        reason: string;
    } | string)[]);
    readonly message: string;
    toJSON(): any;
}
export declare class MissingParameters extends InvalidParameters {
    readonly path: string;
    readonly code: number;
    constructor(...parameters: string[]);
}
export declare class InvalidCredentials extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class UnknownAccount extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class ExistingAccount extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class AccessDenied extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class InvalidRealmType extends RealmProblem {
    private readonly expectedType;
    private readonly actualType;
    readonly path: string;
    readonly status: number;
    readonly code: number;
    readonly message: string;
    constructor(expectedType: RealmType, actualType: RealmType);
}
export declare class ExpiredRefreshToken extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class InvalidHost extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class RealmNotFound extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class UnknownUser extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class ExpiredPermissionOffer extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class AmbiguousPermissionOfferToken extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class FileMayNotBeShared extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class ServerMisconfiguration extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class ServiceUnavailable extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
export declare class NotSupported extends RealmProblem {
    readonly path: string;
    readonly status: number;
    readonly code: number;
    constructor(params?: JSONErrorParams);
}
