import { PropertyValueMap } from "lit";
import { FRoot } from "../../mixins/components/f-root/f-root";
import { FDiv, FDivPaddingProp } from "../f-div/f-div";
export type FAccordionBodyHeightProp = `${number}px` | `${number}%` | `${number}vh`;
export type FAccordionCustomEvent = {
    value: boolean;
};
export type FAccordionPadding = FDivPaddingProp;
export declare class FAccordion extends FRoot {
    /**
     * css loaded from scss file
     */
    static styles: import("lit").CSSResult[];
    /**
     * @attribute toggle accordion
     */
    open?: boolean;
    /**
     * @attribute
     */
    icon?: "chevron" | "caret" | "plus" | "none";
    /**
     * @attribute
     */
    iconSize?: "x-small" | "small" | "medium" | "large";
    /**
     * @attribute placement of icon on left or right
     */
    iconPlacement?: "right" | "left";
    /**
     * @attribute placement of icon on left or right
     */
    maxHeight?: FAccordionBodyHeightProp;
    /**
     * @attribute padding applies on header slot container.
     */
    headerPadding?: FAccordionPadding;
    /**
     * @attribute padding applies on body slot container.
     */
    bodyPadding?: FAccordionPadding;
    fAccordionBody?: FDiv;
    fAccordionHeader?: FDiv;
    headerId: string;
    contentId: string;
    /**
     * identify icon-name from string
     */
    get iconName(): "i-caret-down" | "i-chevron-right" | "i-minus" | "i-plus";
    /**
     * toggle accordion
     */
    toggleAccordion(): void;
    /**
     * changeState
     */
    stateChange(mouseState: "enter" | "leave"): void;
    /**
     * toggle event dispatch
     * @param value boolean
     */
    dispatchToggleEvent(value: boolean): void;
    /**
     * handling max-height of body
     */
    handleAccordionBody(): void;
    protected willUpdate(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    render(): import("lit-html").TemplateResult<1>;
    protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
}
/**
 * Required for typescript
 */
declare global {
    interface HTMLElementTagNameMap {
        "f-accordion": FAccordion;
    }
}
