import * as lit_html from 'lit-html';
import * as lit from 'lit';
import { LitElement } from 'lit';
declare const placement: readonly ["auto", "auto-start", "auto-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "right", "right-start", "right-end", "left", "left-start", "left-end"];
declare enum EnumPlacement {
AUTO = "auto",
AUTO_START = "auto-start",
AUTO_END = "auto-end",
TOP = "top",
TOP_START = "top-start",
TOP_END = "top-end",
BOTTOM = "bottom",
BOTTOM_START = "bottom-start",
BOTTOM_END = "bottom-end",
RIGHT = "right",
RIGHT_START = "right-start",
RIGHT_END = "right-end",
LEFT = "left",
LEFT_START = "left-start",
LEFT_END = "left-end"
}
type TypePlacement = typeof placement[number];
declare const fireEvents: readonly ["click", "hover"];
declare enum EnumFireEvents {
CLICK = "click",
HOVER = "hover"
}
type TypeFireEvents = typeof fireEvents[number];
declare const effects: readonly ["none", "fade", "scale", "slide", "fall", "flip-horizontal", "flip-vertical", "sign", "super-scaled"];
declare enum EnumEffects {
NONE = "none",
FADE = "fade",
SCALE = "scale",
SLIDE = "slide",
FALL = "fall",
FLIP_HORIZONTAL = "flip-horizontal",
FLIP_VERTICAL = "flip-vertical",
SIGN = "sign",
SUPER_SCALED = "super-scaled"
}
type TypeEffects = typeof effects[number];
declare const strategy: readonly ["fixed", "absolute"];
declare enum EnumStrategy {
FIXED = "fixed",
ABSOLUTE = "absolute"
}
type TypeStrategy = typeof strategy[number];
/**
* @since 2.0.0
* @status stable
*
* @tagname kemet-popper
* @summary A wrapper component for the popper.js lib.
*
* @event kemet-opened - Fires when the popper opens
* @event kemet-closed - Fires when the popper closes
*
* @slot trigger - Controls opening and closing the popover.
* @slot content - The contents of the popover.
*
* @csspart trigger - Contains the trigger for the popover.
* @csspart content - Contains the content for the popover.
*
* @cssproperty --kemet-popper-padding - The padding in the content slot.
* @cssproperty --kemet-popper-border-color - The border color of the content.
* @cssproperty --kemet-popper-background-color - The background color of the content.
*
* @prop {TypePlacement} placement - The position of the popper over the trigger.
* @prop {boolean} opened - Determines if the Popper is opened or closed
* @prop {TypeFireOn} fireOn - Activate the Popper on Click or Hover
* @prop {TypeStrategy} strategy - Sets the strategy option in Popper's api
* @prop {number} skidding - Sets an offset to the Popper from the trigger
* @prop {number} distance - Sets spacing between the Popper and the trigger
*
*/
declare class KemetPopper extends LitElement {
static styles: lit.CSSResult[];
placement: TypePlacement;
opened: boolean;
fireOn: TypeFireEvents;
strategy: TypeStrategy;
skidding: number;
distance: number;
/** @internal */
popperInstance: {
setOptions: (arg0: {
placement: TypePlacement;
strategy: TypeStrategy;
modifiers: {
name: string;
options: {
offset: number[];
};
}[];
}) => void;
};
/** @internal */
triggerElement: HTMLElement;
/** @internal */
contentElement: HTMLElement;
/** @internal */
focusableElements: NodeListOf;
constructor();
firstUpdated(): void;
updated(prevProps: Map): void;
render(): lit_html.TemplateResult<1>;
refresh(): void;
makePopper(): void;
toggle(event: MouseEvent | KeyboardEvent): void;
handleKeyUp(event: KeyboardEvent): void;
handleFocusableDown(event: KeyboardEvent): void;
}
declare global {
interface HTMLElementTagNameMap {
'kemet-popper': KemetPopper;
}
}
export { EnumEffects, EnumFireEvents, EnumPlacement, EnumStrategy, type TypeEffects, type TypeFireEvents, type TypePlacement, type TypeStrategy, KemetPopper as default, effects, fireEvents, placement, strategy };