import { ComponentInterface } from '../../../stencil-public-runtime';
import { HTMLStencilElement } from '../../../stencil-public-runtime';
import { AccordionState } from '../../../interfaces';
import { BalConfigState, BalLanguage } from '../../../utils/config';
import { Loggable, LogInstance } from '../../../utils/log';
type BaseProps = {
    variant: BalProps.BalAccordionTriggerVariant;
    id: string;
    label: string;
    icon: string;
    turn: boolean;
    expanded: boolean;
    buttonPart: string;
    triggerAttributes: {
        tabindex: number;
    };
};
type ButtonProps = BaseProps & {
    color: BalProps.BalButtonColor;
    size: BalProps.BalButtonSize;
    expanded: boolean;
};
type IconProps = BaseProps & {
    icon: string;
    turn: boolean;
};
type TextProps = BaseProps & {
    label: string;
};
export declare class AccordionTrigger implements ComponentInterface, Loggable {
    private componentId;
    el: HTMLStencilElement;
    parentAccordionId?: string;
    language: BalLanguage;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    /**
     * PUBLIC PROPERTY API
     * ------------------------------------------------------
     */
    /**
     * @deprecated
     * Trigger will be a bal-button
     */
    button: boolean;
    /**
     * Defines the nature of the accordion trigger.
     */
    variant: BalProps.BalAccordionTriggerVariant;
    /**
     * If `true` the button is aligned over the whole width
     */
    expanded: boolean;
    /**
     * Label of the open trigger button
     */
    openLabel: string;
    /**
     * BalIcon of the open trigger button
     */
    openIcon: string;
    /**
     * Label of the close trigger button
     */
    closeLabel: string;
    /**
     * BalIcon of the close trigger button
     */
    closeIcon: string;
    /**
     * The color to use from your application's color palette.
     */
    color: BalProps.BalButtonColor;
    /**
     * Size of the button
     */
    size: BalProps.BalButtonSize;
    /**
     * @internal
     */
    active: boolean;
    /**
     * @internal
     */
    state: AccordionState;
    /**
     * LIFECYCLE
     * ------------------------------------------------------
     */
    connectedCallback(): void;
    componentWillRender(): void;
    /**
     * LISTENERS
     * ------------------------------------------------------
     */
    /**
     * @internal define config for the component
     */
    configChanged(state: BalConfigState): Promise<void>;
    /**
     * GETTERS
     * ------------------------------------------------------
     */
    private get realVariant();
    private get parentAccordionElement();
    private get parentAccordionSummaryElement();
    /**
     * PRIVATE METHODS
     * ------------------------------------------------------
     */
    private updateAccordionId;
    /**
     * EVENT HANDLER
     * ------------------------------------------------------
     */
    private onClick;
    /**
     * RENDER
     * ------------------------------------------------------
     */
    block: {
        class: (condition?: boolean) => {
            [x: string]: boolean;
        };
        element: (name: string) => /*elided*/ any;
        modifier: (name: string) => /*elided*/ any;
    };
    render(): any;
    renderButton({ id, buttonPart, icon, turn, label }: ButtonProps): any;
    renderIcon({ buttonPart, triggerAttributes, turn, icon, id }: IconProps): any;
    renderText({ buttonPart, triggerAttributes, turn, icon, id }: TextProps): any;
}
export {};
