import { AttributePart } from 'lit/html.js';
import { PartInfo } from 'lit/directive.js';
import { AsyncDirective } from 'lit/async-directive.js';
export { AnimateController } from './animate-controller.js';
export type CSSValues = {
[index: string]: string | number;
};
export type CSSPropertiesList = string[];
export type Options = {
keyframeOptions?: KeyframeAnimationOptions;
properties?: CSSPropertiesList;
disabled?: boolean;
guard?: () => unknown;
id?: unknown;
inId?: unknown;
in?: Keyframe[];
out?: Keyframe[];
stabilizeOut?: boolean;
skipInitial?: boolean;
onStart?: (animate: Animate) => void;
onComplete?: (animate: Animate) => void;
onFrames?: (animate: Animate) => Keyframe[] | undefined;
};
export declare const animationFrame: () => Promise;
export declare const flyBelow: {
transform: string;
opacity: number;
}[];
export declare const flyAbove: {
transform: string;
opacity: number;
}[];
export declare const flyLeft: {
transform: string;
opacity: number;
}[];
export declare const flyRight: {
transform: string;
opacity: number;
}[];
export declare const none: {}[];
export declare const fadeOut: {
opacity: number;
}[];
export declare const fade: {
opacity: number;
}[];
export declare const fadeIn: {
opacity: number;
}[];
export declare const fadeInSlow: ({
opacity: number;
offset?: undefined;
} | {
opacity: number;
offset: number;
})[];
export declare const transformProps: {
[p: string]: (a: number, b: number) => {
value?: number;
transform?: string;
overrideFrom?: {
[k: string]: string;
};
};
};
export declare const defaultKeyframeOptions: KeyframeAnimationOptions;
export declare const defaultCssProperties: CSSPropertiesList;
/**
* `animate` directive class. Animates a node's position between renders.
*/
export declare class Animate extends AsyncDirective {
private _hostHasUpdated;
private _host?;
private _fromValues?;
private _parentNode;
private _nextSibling;
private _shouldAnimate;
private _previousValue;
private _styles?;
element: HTMLElement;
shouldLog: boolean;
animatingProperties?: CSSValues;
frames?: Keyframe[];
webAnimation?: Animation;
options: Options;
optionsOrCallback?: (() => Options) | Options;
finished: Promise;
private _resolveFinished?;
constructor(part: PartInfo);
createFinished(): void;
resolveFinished(): Promise;
render(_options?: (() => Options) | Options): symbol;
getController(): import("./animate-controller.js").AnimateController | undefined;
isDisabled(): boolean | undefined;
update(part: AttributePart, [options]: Parameters): symbol;
private _setOptions;
private _measure;
private _canStart;
hostUpdate(): void;
hostUpdated(): Promise;
resetStyles(): void;
commitStyles(): void;
reconnected(): void;
disconnected(): Promise;
prepare(): void;
start(): void;
didFinish(didAnimate: boolean): void;
private _getAncestors;
protected get isHostRendered(): boolean;
private _calculateKeyframeOptions;
private _applyAncestorAdjustments;
protected calculateKeyframes(from: CSSValues, to: CSSValues, center?: boolean): Keyframe[] | undefined;
protected animate(frames: Keyframe[] | undefined, options?: KeyframeAnimationOptions | undefined): Promise;
protected isAnimating(): boolean | undefined;
log(message: string, data?: unknown): void;
}
/**
* The `animate` directive animates a node's layout between renders.
* It will perform a "tweening" animation between the two states based on
* the options given. In addition, elements can animate when they initially
* render to DOM and when they are removed.
*
* Options include:
* * keyframeOptions: configure animation via standard KeyframeAnimationOptions
* * properties: list of properties to animate, defaults to
* ['left', 'top','width', 'height', 'opacity', 'color', 'background']
* * disabled: disables animation
* * guard: function producing values that must change for the `animate` to run
* * in: keyframes to use when animating in
* * out: keyframes to use when animating out
* * skipInitial: skip animating in the first time
* * id: used to link to other `animate`s via `inId`
* * inId: id of the `animate` to render from when animating in
* * onStart: run when the `animate` starts
* * onComplete: run when the `animate` completes
* * onFrames: run when the frames are produces, use to modify frames
*/
export declare const animate: (_options?: Options | (() => Options) | undefined) => import("lit-html/directive.js").DirectiveResult;
//# sourceMappingURL=animate.d.ts.map