import { ReactiveControllerHost } from 'lit';
import { BaseController } from './base.controller.js';
export type AnimationState = 'hidden' | 'showing' | 'visible' | 'hiding';
/**
* Controller for managing show/hide animation states.
* Provides a state machine for coordinating CSS transitions.
*
* @example
* ```ts
* class MyModal extends LitElement {
* private animation = new AnimationController(this);
*
* async open() {
* await this.animation.show();
* }
*
* async close() {
* await this.animation.hide();
* }
*
* render() {
* return html`
*
*
*
* `;
* }
* }
* ```
*/
export interface AnimationControllerOptions {
showDuration?: number;
hideDuration?: number;
}
export declare class AnimationController extends BaseController {
private _state;
private showDuration;
private hideDuration;
constructor(host: ReactiveControllerHost, options?: AnimationControllerOptions | number);
get state(): AnimationState;
get isVisible(): boolean;
get isHidden(): boolean;
show(): Promise;
hide(): Promise;
toggle(): Promise;
private waitForTransition;
}
//# sourceMappingURL=animation.controller.d.ts.map