import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type { Ref } from 'lit/directives/ref.js';
import type { AnimationReferenceMetadata } from './types.js';
declare class AnimationController implements ReactiveController {
    private readonly host;
    private _target?;
    protected get target(): HTMLElement;
    constructor(host: ReactiveControllerHost & HTMLElement, _target?: (Ref<HTMLElement> | HTMLElement) | undefined);
    private parseKeyframes;
    play(animation: AnimationReferenceMetadata): Promise<AnimationPlaybackEvent>;
    stopAll(): Promise<unknown[]>;
    playExclusive(animation: AnimationReferenceMetadata): Promise<boolean>;
    hostConnected(): void;
}
/**
 * Creates and attaches an animation player instance to the passed in `host` element.
 * The player will run animations on the passed in `target`, or if `target` is undefined,
 * the host element itself.
 */
export declare function addAnimationController(host: ReactiveControllerHost & HTMLElement, target?: Ref<HTMLElement> | HTMLElement): AnimationController;
type ViewTransitionResult = {
    transition?: ViewTransition;
};
export declare function startViewTransition(callback?: ViewTransitionUpdateCallback): ViewTransitionResult;
export {};
