import type { ILogger } from '../core/storage/storage.interface';
/**
 * Базовый класс ошибок Synapse.
 * Позволяет отличать ошибки библиотеки от прочих через `instanceof`.
 */
export declare class SynapseError extends Error {
    readonly context?: string | undefined;
    readonly cause?: unknown | undefined;
    constructor(message: string, context?: string | undefined, cause?: unknown | undefined);
}
/**
 * Категории обработки ошибок в Synapse:
 *
 * - CRITICAL:   Ошибки конфигурации/инициализации → log + throw (fail fast)
 * - OPERATION:  Ошибки CRUD-операций → log + rethrow (вызывающий код решает)
 * - CALLBACK:   Ошибки в пользовательских callback'ах → log + swallow (не крашим приложение)
 * - CLEANUP:    Ошибки при destroy/unsubscribe → log + swallow (best-effort)
 */
type LogMethod = 'error' | 'warn';
/**
 * Логирует ошибку через ILogger (если есть) или через console-fallback.
 */
export declare function logError(message: string, error: unknown, logger?: ILogger | null, level?: LogMethod): void;
/**
 * OPERATION pattern: логирует и пробрасывает ошибку.
 * Для CRUD-операций (get, set, update, delete) и инициализации.
 */
export declare function handleOperationError(context: string, error: unknown, logger?: ILogger | null): never;
/**
 * CALLBACK pattern: логирует и проглатывает ошибку.
 * Для пользовательских callback'ов, подписчиков, эффектов.
 * Ошибка в одном callback'е не должна ломать остальные.
 */
export declare function handleCallbackError(context: string, error: unknown, logger?: ILogger | null): void;
/**
 * CLEANUP pattern: логирует предупреждение и продолжает.
 * Для destroy(), unsubscribe() и прочих cleanup-операций.
 */
export declare function handleCleanupError(context: string, error: unknown, logger?: ILogger | null): void;
/**
 * Обёртка для безопасного вызова callback'а (CALLBACK pattern).
 * Возвращает результат или undefined при ошибке.
 */
export declare function safeCallback<T>(fn: () => T, context: string, logger?: ILogger | null): T | undefined;
/**
 * Обёртка для promise в fire-and-forget сценариях (CLEANUP pattern).
 */
export declare function safePromise(promise: Promise<unknown>, context: string, logger?: ILogger | null): void;
export {};
