import { type Logger } from '../../Logger'; import type { BlockerFunction, Location } from '../../types'; import { BlockerManager } from '../BlockerManager'; type InitBlockerParams = { proceed: () => void; reset: () => void; }; export declare class BlockerFacade { private readonly _logger; /** * id следующего блокера */ private nextBlockerId; /** * Активные блокеры находятся в Set для возможности итерации. * Неактивные блокеры находятся в WeakSet для того чтобы они автоматически удалялись, если к ним нет обращений */ private activeBlockers; private inactiveBlockers; private initBlockerParams?; constructor(_logger: Logger); /** * Создаёт новый Blocker, регистрирует его в фасаде. */ createBlockerManager: (shouldBlock: BlockerFunction) => BlockerManager; init: ({ proceed, reset }: InitBlockerParams) => void; /** * Проверяет, есть ли хоть один блокер, запрещающий переход. */ shouldBlock: (nextLocation: Location) => boolean; } export {};