import { IncludeFragmentElement } from '@github/include-fragment-element';
import type { AnchorAlignment, AnchorSide } from '@primer/behaviors';
import type { LiveRegionElement } from '@primer/live-region-element';
import '@primer/live-region-element';
import '@oddbird/popover-polyfill';
type SelectVariant = 'none' | 'single' | 'multiple' | null;
type SelectedItem = {
    label: string | null | undefined;
    value: string | null | undefined;
    inputName: string | null | undefined;
};
export type SelectPanelItem = HTMLLIElement;
export type FilterFn = (item: SelectPanelItem, query: string) => boolean;
export declare class SelectPanelElement extends HTMLElement {
    #private;
    includeFragment: IncludeFragmentElement;
    dialog: HTMLDialogElement;
    filterInputTextField: HTMLInputElement;
    remoteInput: HTMLElement;
    list: HTMLElement;
    noResults: HTMLElement;
    fragmentErrorElement: HTMLElement;
    bannerErrorElement: HTMLElement;
    bodySpinner: HTMLElement;
    liveRegion: LiveRegionElement;
    filterFn?: FilterFn;
    get open(): boolean;
    get selectVariant(): SelectVariant;
    get ariaSelectionType(): string;
    set selectVariant(variant: SelectVariant);
    get dynamicLabelPrefix(): string;
    get dynamicAriaLabelPrefix(): string;
    set dynamicLabelPrefix(value: string);
    get dynamicLabel(): boolean;
    set dynamicLabel(value: boolean);
    get invokerElement(): HTMLButtonElement | null;
    get closeButton(): HTMLButtonElement | null;
    get invokerLabel(): HTMLElement | null;
    get selectedItems(): SelectedItem[];
    get align(): AnchorAlignment;
    get side(): AnchorSide;
    updateAnchorPosition(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    handleEvent(event: Event): void;
    show(): void;
    hide(): void;
    get visibleItems(): SelectPanelItem[];
    get items(): SelectPanelItem[];
    get focusableItem(): HTMLElement | undefined;
    getItemById(itemId: string): SelectPanelItem | null;
    isItemDisabled(item: SelectPanelItem | null): boolean;
    disableItem(item: SelectPanelItem | null): void;
    enableItem(item: SelectPanelItem | null): void;
    isItemHidden(item: SelectPanelItem | null): boolean;
    isItemChecked(item: SelectPanelItem | null): boolean;
    checkItem(item: SelectPanelItem | null): void;
    uncheckItem(item: SelectPanelItem | null): void;
}
declare global {
    interface Window {
        SelectPanelElement: typeof SelectPanelElement;
    }
}
export {};
