/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
import { BackdropAppearance } from './backdrop-constants';
import { BackdropFoundation } from './backdrop-foundation';
export interface IBackdropComponent extends IBaseComponent {
    delay: number;
    maxOpacity: number;
    appearance: BackdropAppearance;
    fadeOut(): Promise<void>;
    fadeIn(): Promise<void>;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-backdrop': IBackdropComponent;
    }
    interface HTMLElementEventMap {
        'forge-backdrop-click': CustomEvent<void>;
    }
}
/**
 * A web component that renders a backdrop covering its parent container with a semi-opaque element.
 *
 * @tag forge-backdrop
 */
export declare class BackdropComponent extends BaseComponent {
    static get observedAttributes(): string[];
    protected _foundation: BackdropFoundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /**
     * The time in milliseconds to delay the fade in animation of the opacity.
     * Note: The element will start with 0% opacity when the component is rendered.
     */
    delay: number;
    /** Controls whether the theme defaults to light vs dark compatibility. */
    appearance: BackdropAppearance;
    /** The max opacity to fade the element to. This defines how opaque the backdrop is when visible. */
    maxOpacity: number;
    /**
     * Starts the fade-out animation to animate the backdrop to 0% opacity.
     */
    fadeOut(): Promise<void>;
    /**
     * Starts the fade-in animation to animate the backdrop to max opacity.
     */
    fadeIn(): Promise<void>;
}
