/** * Define os tipos de operação que o locker pode controlar */ export declare enum LockManagerOperation { /** Operação de lock utilizada para controlar cliques nos botoes da taskbar. */ TASKBAR_CLICK = "taskbar_click", /** Operação de lock utilizada para controlar carregamento da aplicação. */ APP_LOADING = "app_loading" } export declare class LockManager { private static _locks; /** * Nome do atributo que será utilizado para controlar contexto de locks nos elementos da DOM. */ static ATTRIBUTE_NAME: string; private static buildContextID; private static buildLockerID; private static findExistingCtxId; private static traverseAndAddAttr; /** * Cria um contexto de locker, caso nao exista, para todos elementos pais iniciados com ez- ou snk-. * * @param startElement - Elemento de de onde o lock deve começar. * * @returns - O id do locker, que pode ser usado para iniciar ou aguardar um lock do contexto. */ static addLockManagerCtxId(startElement: HTMLElement): string; /** * Reseta todos os locks existentes para um determinado contexto e operação de forma assíncrona * @param id - ID do contexto ou elemento HTML contendo contexto * @param operation - Operação específica para resetar os locks * @returns Promise que será resolvida quando todos os locks forem resetados */ static resetLocks(id: string | HTMLElement, operation: LockManagerOperation): Promise; /** * Inicia um locker baseado em um contexto e uma operação. * * @param id - Pode ser um ID do contexto de locker, ou, o elemento contendo um contexto de locker. * @param operation - Operação do contexto que o lock deve ser feito. * * @returns - Uma função que fara a liberação do lock. */ static lock(id: string | HTMLElement, operation: LockManagerOperation): () => void; /** * Aguarda todos os lockers de um contexto e operação serem resolvidos. * * @param id - Pode ser um ID do contexto de locker, ou, o elemento contendo um contexto de locker. * @param operation - Operação do contexto que devera aguardar. * * @returns - Promise que será resolvida quando todos lockers forem finalizados. */ static whenResolve(id: string | HTMLElement, operation: LockManagerOperation, debounce?: number, timeOut?: number): Promise; static whenHasLock(id: string | HTMLElement, operation: LockManagerOperation, timeOut?: number): Promise; }