import { PropertyValues } from 'lit';
import { Cre8Element } from '../cre8-element';
import '../icon/icon.js';
import '@a11y/focus-trap';
/**
* Modal component should be used in all modal situations.
* It is natuarally composable and can even have a custom header and remove the close button.
* (note: adding `slot="header"` will insert the given element into the header section of the modal,
* same for `slot="footer"` and no given slot name will inset it into the body)
*
* If it is desired to create a utility modal. Cre8Modal requires a status value (see props table below,
* and a UtilityModalTitle since all utility modals have a cre8-heading)
* @slot - The component content
*/
export declare class Cre8Modal extends Cre8Element {
static styles: import("lit").CSSResult[];
/**
* Query the modal window
*/
_modalWindow: HTMLDivElement;
/**
* Is Active attribute
*/
isActive?: boolean;
/**
* Status Types
*
*
* - **default (no value)** renders a default modal
* - **error** renders an error modal
* - **warning** renders a warning modal
* - **success** renders a success modal
* - **info** renders an info modal
* - **help** renders an help modal
*
*
*/
status?: 'error' | 'warning' | 'success' | 'info' | 'help';
/**
* Utility Modal Heading (String)
*/
utilityModalTitle: string;
/**
* Not dismissible modal
*/
notDismissible?: boolean;
/**
* Close Button Text
*/
closeButtonText: string;
/**
* Close Button Icon
*/
closeButtonIcon: string;
/**
* Modal Aria Label - This is required for accessibility and provides context of the entire modal!
*/
ariaLabel: string;
/**
* Handle keydown
* 1) Close the modal when escape is hit when the user is focused within the modal
*/
handleKeydown(e: KeyboardEvent): void;
/**
* Handle on close
* 1) On close, set the modal to not active and dispatch event telling the parent the modal was closed.
*/
handleCloseModal(): void;
/**
* Handle "click outside"
* 1) onClick of the area around the modal window, close the modal.
*/
handleOnClickOutside(e: Event): void;
/**
* Lifecycle method to focus on modal
* 1) If there is a changed property, and this.isActive === true, then focus on the modal window.
* 2) Disable the body from scrolling behind while the modal is open.
*/
updated(changedProperties: PropertyValues): void;
mapStatusToIconModal: (status: string) => import("lit-html").TemplateResult<1>;
/**
* Lifecycle method on removal from the DOM
* Removed body overflow and handle close (isActive set to false)
*/
disconnectedCallback(): void;
render(): import("lit-html").TemplateResult<1>;
}
export interface CloseModalEvent extends CustomEvent<{
isActive: boolean;
}> {
type: 'close-modal';
currentTarget: Cre8Modal;
}
declare global {
interface HTMLElementTagNameMap {
'cre8-modal': Cre8Modal;
}
}
//# sourceMappingURL=modal.d.ts.map