import { ESLMixinElement } from '../../esl-mixin-element/core';
import { ESLToggleable } from '../../esl-toggleable/core/esl-toggleable';
import type { ESLToggleableActionParams } from '../../esl-toggleable/core/esl-toggleable';
export type ESLRelatedTargetActionType = 'all' | 'show' | 'hide';
/**
 * ESLRelatedTarget mixin element
 * @author Anastasia Lesun, Alexey Stsefanovich (ala'n)
 *
 * ESLRelatedTarget is a custom mixin element that can be used with {@link ESLToggleable}s to sync their states
 */
export declare class ESLRelatedTarget extends ESLMixinElement {
    static is: string;
    /** Selector/query ({@link ESLTraversingQuery}) to find related ESLToggleable element */
    selector: string;
    /** Action to synchronize between toggleables */
    action: ESLRelatedTargetActionType;
    /** @returns related toggleable instances */
    get $targets(): ESLToggleable[];
    /** Merges params that are used to initiate actions */
    protected mergeParams(params: ESLToggleableActionParams): ESLToggleableActionParams;
    /** Processes {@link ESLToggleable} show event */
    protected onShow(e: CustomEvent): void;
    /** Processes {@link ESLToggleable} hide event */
    protected onHide(e: CustomEvent): void;
}
