import { IEventDetail, IEventEmitter } from '@breadstone/mosaik-elements'; import { type IAnimatable } from '../../../Behaviors/Animatable'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { ICookiesConsentElementProps } from './ICookiesConsentElementProps'; import { CookiesConsentElementIntl } from './Intl/CookiesConsentElementIntl'; declare const CookiesConsentElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Animatable").IAnimatableProps & IAnimatable) & (abstract new (...args: Array) => import("../../../Behaviors/Elevatable").IElevatableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * CookiesConsent - A configurable notification banner for managing user cookie consent and privacy preferences. * * @description * The CookiesConsent component provides a comprehensive, GDPR-compliant interface for informing users * about cookie usage and capturing their consent preferences. It presents an elevated banner with * customizable messaging, configurable action buttons for accepting or dismissing the disclaimer, * and intelligent state management to track user responses. The component features smooth fade-in * and fade-slide animations, internationalization support through the IntlController, and flexible * positioning capabilities. It can be configured to show or hide accept/dismiss buttons independently, * making it adaptable to various compliance requirements and user experience patterns. The component * automatically animates out when users interact with the consent options, providing a polished * and professional privacy management experience. * * @name CookiesConsent * @element mosaik-cookies-consent * @category Misc * * @slot actions - Custom action buttons to override or extend the default accept/dismiss buttons * * @csspart banner - The banner container element displaying the cookie consent message * * @cssprop {String} --cookies-consent-position - The positioning context for the consent banner * @cssprop {String} --cookies-consent-bottom - The distance from the bottom edge of the viewport * @cssprop {String} --cookies-consent-left - The distance from the left edge of the viewport * @cssprop {String} --cookies-consent-right - The distance from the right edge of the viewport * @cssprop {String} --cookies-consent-width - The width of the consent banner * @cssprop {String} --cookies-consent-z-index - The stacking order above other page content * @cssprop {String} --cookies-consent-margin - The outer spacing around the consent banner * * @dependency {BannerElement} - Banner container for the consent message and actions * @dependency {ButtonElement} - Action buttons for accept and dismiss operations * * @fires cookiesAccepted {CookiesAcceptedEvent} - Fired when the user accepts the cookies disclaimer by clicking the accept button * @fires cookiesDismissed {CookiesDismissedEvent} - Fired when the user dismisses the cookies disclaimer by clicking the dismiss button * * @example * Basic cookie consent banner (shows by default): * ```html * * ``` * * @example * Cookie consent with only accept button: * ```html * * ``` * * @example * Hidden after user has already accepted: * ```html * * * ``` * * @example * With elevated appearance: * ```html * * * ``` * * @example * With custom action buttons: * ```html * * Learn More * Accept All * * ``` * * @public */ export declare class CookiesConsentElement extends CookiesConsentElement_base implements ICookiesConsentElementProps, IAnimatable { private readonly _intl; private readonly _accepted; private readonly _dismissed; private _hasAcceptedCookies; private _acceptable; private _dismissable; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `hasAcceptedCookies` property. * Indicates whether the user has already accepted the cookies disclaimer. * When true, the consent banner is hidden. The default value is false. * * @public * @attr */ get hasAcceptedCookies(): boolean; set hasAcceptedCookies(value: boolean); /** * Gets or sets the `acceptable` property. * Controls whether the accept button is displayed in the consent banner. * The default value is false. * * @public * @attr */ get acceptable(): boolean; set acceptable(value: boolean); /** * Gets or sets the `dismissable` property. * Controls whether the dismiss button is displayed in the consent banner. * The default value is false. * * @public * @attr */ get dismissable(): boolean; set dismissable(value: boolean); /** * Called when the user accepts the cookies disclaimer. * Provides reference to `IEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get accepted(): IEventEmitter; /** * Called when the user dismisses the cookies disclaimer. * Provides reference to `IEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get dismissed(): IEventEmitter; /** * Returns the `intl` property. * Provides access to the internationalization controller for localized messages. * * @public * @readonly */ get intl(): CookiesConsentElementIntl; /** * @public * @override */ onEnterAnimation(): Promise; /** * @public * @override */ onExitAnimation(): Promise; /** * @public * @override */ disconnectedCallback(): void; /** * Emits the `accepted` event. * * @protected */ protected onAccepted(args: any): void; /** * Emits the `dismissed` event. * * @protected */ protected onDismissed(args: any): void; /** * @private * @template */ onAccept(): void; /** * @private * @template */ onDismiss(): void; } /** * @public */ export declare namespace CookiesConsentElement { type Props = ICookiesConsentElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-cookies-consent': CookiesConsentElement; } } export {}; //# sourceMappingURL=CookiesConsentElement.d.ts.map