import { FindPropertyPreference, MobilePlatformElementSelector } from '@mablhq/test-model/mablscriptFind';
import Candidate from './Candidate';
export default class AttributeMatcher<TSelector extends MobilePlatformElementSelector, TCandidate extends Candidate<TSelector>> {
    readonly initialWeight: number;
    readonly selectorKey: keyof TSelector;
    readonly important: boolean;
    protected weight: number;
    constructor(initialWeight: number, selectorKey: keyof TSelector, important?: boolean);
    getWeight(): number;
    calculateMatchScore(originalSelector: TSelector, candidateSelector: TSelector, preferences: Record<string, FindPropertyPreference> | undefined): number;
    canMatchBy(selector: TSelector, preferences: Record<string, FindPropertyPreference> | undefined): boolean;
    getEffectiveSelectorValue(propertyKey: keyof TSelector, selector: TSelector, preferences: Record<string, FindPropertyPreference> | undefined): string | undefined;
    getMatchedCandidates(selector: TSelector, findCandidates: TCandidate[], preferences: Record<string, FindPropertyPreference> | undefined): TCandidate[];
    getMatchedCandidatesCount(selector: TSelector, findCandidates: TCandidate[], preferences: Record<string, FindPropertyPreference> | undefined): number;
    adjustWeightBySpecificity(findCandidates: TCandidate[], selector: TSelector, preferences: Record<string, FindPropertyPreference> | undefined): void;
    areMatchedNormalized(originalSelector: TSelector, candidateSelector: TSelector, preferences: Record<string, FindPropertyPreference> | undefined): boolean;
}
export declare function removeNewLineCharacters(val: string): string;
//# sourceMappingURL=AttributeMatcher.d.ts.map