import { DropdownUtil } from "../../common/dropdown";
import { MenuUtils, type BaseMenuInput, type MenuState } from "../../common/menu-utils";
import type { FilterMenuEvent } from "../ebay-filter-menu/component";
import type { WithNormalizedProps } from "../../global";
export interface FilterMenuButtonEvent {
    el?: Element;
    checked: string[];
    originalEvent?: Event;
    index?: number;
    currentChecked?: boolean;
}
interface FilterMenuButtonInput extends BaseMenuInput, Omit<Marko.HTML.Span, `on${string}`> {
    text?: string;
    "footer-text"?: string;
    "a11y-footer-text"?: Marko.HTMLAttributes["aria-label"];
    footer?: WithNormalizedProps<Omit<Marko.HTML.Button, `on${string}`> & {
        "a11y-footer-text"?: Marko.HTMLAttributes["aria-label"];
    }>;
    variant?: "form";
    "form-name"?: string;
    "form-action"?: string;
    "form-method"?: string;
    disabled?: boolean;
    "a11y-text"?: Marko.HTMLAttributes["aria-label"];
    "search-header-value"?: string;
    "search-header-placeholder-text"?: string;
    "a11y-search-header-clear-text"?: Marko.HTMLAttributes["aria-label"];
    "on-expand"?: () => void;
    "on-change"?: (event: FilterMenuButtonEvent) => void;
    "on-collapse"?: (event: FilterMenuButtonEvent) => void;
    "on-footer-click"?: (event: FilterMenuButtonEvent) => void;
    "on-form-submit"?: (event: FilterMenuButtonEvent) => void;
    "on-search-change"?: (value: string) => void;
}
export interface Input extends WithNormalizedProps<FilterMenuButtonInput> {
}
export default class extends MenuUtils<Input, MenuState> {
    _expander: any;
    dropdownUtil: DropdownUtil;
    onCreate(): void;
    handleMenuKeydown({ originalEvent }: FilterMenuEvent): void;
    handleMenuChange({ checkedIndex, el, originalEvent, index, currentChecked, }: FilterMenuEvent): void;
    handleFooterButtonClick(): void;
    handleFormSubmit({ originalEvent }: FilterMenuEvent): void;
    handleExpand({ originalEvent }: FilterMenuEvent): void;
    handleCollapse({ originalEvent }: FilterMenuEvent): void;
    onInput(input: Input): void;
    onMount(): void;
    onUpdate(): void;
    onRender(): void;
    onDestroy(): void;
    _emitComponentEvent(eventType: string, originalEvent?: Event, args?: {
        el?: Element;
        index?: number;
        currentChecked?: boolean;
    }): void;
    _setupMakeup(): void;
    _cleanupMakeup(): void;
}
export {};
