import { DomSanitizer } from '@angular/platform-browser';
import { PoLanguageService } from '../../services/po-language/po-language.service';
import { PoUserGuideBaseService } from './po-user-guide-base.service';
import { PoUserGuideOptions, PoUserGuideStep } from './interfaces';
/**
* @docsExtends PoUserGuideBaseService
*
* @example
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
export declare class PoUserGuideService extends PoUserGuideBaseService {
private readonly sanitizer;
private driverFactoryCache;
private driverInstance;
private pendingEndReason;
private readonly scrollLock;
private activeScrollLockEnabled;
private static stylesInjected;
constructor(languageService: PoLanguageService, sanitizer: DomSanitizer);
private isBrowser;
protected importDriver(): Promise;
private loadDriverFactory;
private injectStyles;
private sanitizeText;
private mapStepsToDriveSteps;
private handlePopoverRender;
private focusPopoverDescription;
private applyDoneButtonLabel;
private applyPoButtonStyles;
/**
* Substitui o `×` nativo do Driver.js pelo ícone de fechar do PO UI (`ICON_CLOSE`).
*
* O ícone é referenciado pela classe da fonte (`an an-x`) via `AnimaliaIconDictionary`,
* evitando duplicar o codepoint da fonte Animalia diretamente no CSS.
*/
private applyCloseButtonIcon;
private buildDriverConfig;
private handleHighlightStarted;
private resolveActiveIndex;
private resolveShowButtons;
private handleDestroyed;
private handleCloseClick;
/**
* @description
*
* Configura a lista de passos que serão exibidos durante a execução do tour guiado.
*
* @param {Array} steps Lista de passos do tour a ser configurada. Deve conter ao menos um
* passo válido com a propriedade `content` definida.
*
* @returns {this} A própria instância do serviço, possibilitando o encadeamento fluente de chamadas.
*
* @throws {Error} Quando `steps` é `null`, `undefined`, não é um `Array`, está vazio, contém um passo
* inválido, contém um passo sem a propriedade `content` definida ou contém um passo cujo `element` é
* uma string com sintaxe de seletor CSS inválida.
*/
setSteps(steps: Array): this;
/**
* @description
*
* Configura as opções globais que serão aplicadas durante a execução do tour guiado.
*
* @param {PoUserGuideOptions} [options] Objeto com as opções globais do tour a ser configurado. Quando
* omitido ou `undefined`, apenas os valores padrão do PO UI são aplicados.
*
* @returns {this} A própria instância do serviço, possibilitando o encadeamento fluente de chamadas.
*/
setOptions(options?: PoUserGuideOptions): this;
/**
* @description
*
* Inicia a execução do tour previamente configurado por meio de `setSteps` e, opcionalmente, `setOptions`.
*
* @override
*
* @param {number} [startIndex=0] Índice, com base zero, do passo a partir do qual o tour deve iniciar.
* Deve ser um inteiro contido no intervalo `[0, steps.length - 1]`.
*
* @throws {Error} Quando a lista de passos ainda não foi configurada via `setSteps` ou está vazia.
* @throws {Error} Quando `startIndex` não é um número inteiro contido em `[0, steps.length - 1]`.
*
* @returns {Promise} `Promise` que é resolvida quando o tour é iniciado com sucesso e
* rejeitada com um `Error` de mensagem padronizada quando ocorre falha na carga da dependência
* `driver.js` ou na inicialização do tour.
*/
start(startIndex?: number): Promise;
/**
* @description
*
* Encerra o tour em execução, disparando, em sequência, o ciclo de limpeza de estado e a emissão de
* `tourEnd$`.
*
* @override
*/
close(): void;
/**
* @description
*
* Encerra o tour em execução.
*
* @override
*/
exit(): void;
/**
* @description
*
* Avança o tour em execução para o próximo passo.
*
* @override
*/
next(): void;
/**
* @description
*
* Retrocede o tour em execução para o passo anterior.
*
* @override
*/
previous(): void;
/**
* @description
*
* Move o tour diretamente para o passo identificado pelo `index` informado, que deve ser um número inteiro contido em `[0, steps.length - 1]`. Se o tour ainda não estiver em execução, o método inicia o tour a partir do passo indicado por `index`.
*
* @override
*
* @param {number} index Índice, com base zero, do passo de destino. Deve ser um inteiro contido
* em `[0, steps.length - 1]`.
*
* @throws {Error} Quando `index` não é um número inteiro contido em `[0, steps.length - 1]`.
*/
goTo(index: number): void;
/**
* @description
*
* Indica se há um tour em execução no momento da consulta.
*
* @returns {boolean} `true` quando existe um tour em execução; `false` em qualquer outro caso (antes do primeiro `start()`,
* após `close()`/`exit()` ou após o encerramento natural do tour).
*/
isActive(): boolean;
/**
* @description
*
* Retorna o `PoUserGuideStep` correspondente ao passo ativo no momento da consulta.
*
* @returns {PoUserGuideStep | null} O passo ativo, quando há um tour em execução; `null` em qualquer
* outro caso.
*/
getCurrentStep(): PoUserGuideStep | null;
/**
* @description
*
* Retorna o índice, com base zero, do passo ativo no momento da consulta.
*
* @returns {number} O índice, com base zero, do passo ativo, contido em `[0, steps.length - 1]`,
* quando há um tour em execução; `-1` em qualquer outro caso.
*/
getCurrentIndex(): number;
}