import type { LogLevel } from '@rocicorp/logger';
import type { ErrorBody } from '../../../zero-protocol/src/error.ts';
export declare class ErrorWithLevel extends Error {
    readonly logLevel: LogLevel;
    constructor(msg: string, logLevel?: LogLevel, options?: ErrorOptions);
}
export declare function getLogLevel(error: unknown): LogLevel;
export declare class ErrorForClient extends ErrorWithLevel {
    readonly errorBody: {
        kind: "AuthInvalidated" | "ClientNotFound" | "InvalidConnectionRequest" | "InvalidConnectionRequestBaseCookie" | "InvalidConnectionRequestLastMutationID" | "InvalidConnectionRequestClientDeleted" | "InvalidMessage" | "InvalidPush" | "MutationFailed" | "MutationRateLimited" | "Unauthorized" | "VersionNotSupported" | "SchemaVersionNotSupported" | "Internal";
        message: string;
    } | {
        minBackoffMs?: number | undefined;
        maxBackoffMs?: number | undefined;
        reconnectParams?: Record<string, string> | undefined;
        kind: "Rebalance" | "Rehome" | "ServerOverloaded";
        message: string;
    };
    constructor(errorBody: ErrorBody, logLevel?: LogLevel, // 'warn' by default since these are generally not server issues
    options?: ErrorOptions);
}
export declare function findErrorForClient(error: unknown): ErrorForClient | undefined;
//# sourceMappingURL=error-for-client.d.ts.map