import { LitElement } from "lit";
import { SnackbarDuration, type WarpSnackbarItem, type SnackbarVariant, type SnackbarActionPlacement } from "../snackbar-item/snackbar-item.js";
export type CreateSnackbarOptions = {
/**
* Show a close button so users can dismiss the message early.
*
* Can not be turned off if duration is Long or more.
*
* Pass a click event handler if you need to react to clicks on the close button somehow.
* You can stop the message from closing by calling `event.preventDefault()`.
*
* @default true
*/
canClose?: boolean | ((this: GlobalEventHandlers, ev: PointerEvent) => void);
/**
* Duration until the message hides automatically.
*
* If the message has an action the default `duration` is `SnackbarDuration.Long`.
*
* @default SnackbarDuration.Short
*/
duration?: SnackbarDuration;
/**
* @default 'neutral'
*/
variant?: SnackbarVariant;
/**
* Shows an action before the close button.
*
* Use this action as a convenience only. Ensure the result of any action in the snackbar,
* such as Undo, is possible to achieve elsewhere in your application.
*/
action?: {
/**
* Keep action labels short.
*
* If the label includes a space the `placement` is set to `block` by default.
*/
label: string;
/**
* The action button's `onclick` property.
*/
onclick: (this: GlobalEventHandlers, ev: PointerEvent) => void;
/**
* Overrides the default placement of the action button.
*
* By default labels that are only one word are `inline` and labels with multiple words are `block`.
* If you have a particularly long word as a label you can set `placement: 'block'`.
*/
placement?: SnackbarActionPlacement;
};
};
/**
* A Snackbar shows brief user feedback messages that overlay content, with an optional action such as Undo.
*
* Include one `