///
import { hostIDKey, byExternalAlias, byInternalAlias } from './InternalSymbols';
declare type InternalSelectorConfig = {
value: string;
alias?: string;
internalAlias: string;
parentAlias?: string;
internalParentAlias?: string;
attribute?: string;
eq?: number;
timeout?: number;
ignoreCase?: boolean;
};
declare type SelectorType = 'attribute' | 'id' | 'class' | 'type' | 'selector' | 'xpath' | 'exact-text' | 'partial-text' | 'name' | 'exact-link-text' | 'partial-link-text';
declare type SelectorMeta = {
host: Host;
property: string;
hostID: number;
};
declare type Selector = {
config: InternalSelectorConfig;
type: SelectorType;
meta: SelectorMeta;
engine: SelectorsEngine;
};
declare type SelectorsStorage = Map;
declare type Host = {
[key: string]: Selector | any;
[hostIDKey]?: number;
[byExternalAlias]?: SelectorsStorage;
};
declare type Env = Cypress.cy;
declare type EnvWithSelectorsStorage = Env & {
[byInternalAlias]: SelectorsStorage;
[hostIDKey]: number;
};
declare type SelectorsByEngine = {
engine: 'CSS';
selectors: Array;
} | {
engine: 'XPath';
selector: Selector;
};
declare type SelectorsEngine = SelectorsByEngine['engine'];
declare const buildSelector: (selector: Selector, env: Env) => any;
declare const collectSelectorsChain: (byInternalAlias: SelectorsStorage, selector: Selector, selectorsChain?: Array) => Array;
declare const groupSelectorsByEngineSequentially: (selectors: Array) => Array;
export { buildSelector, collectSelectorsChain, groupSelectorsByEngineSequentially };
export type { Host, Selector, SelectorType, SelectorMeta, EnvWithSelectorsStorage, InternalSelectorConfig, SelectorsEngine, };