///
/**
* @see https://aerotwist.com/blog/flip-your-animations/ for explanations of "first" "last" "inverted"
*/
export declare enum TransitionPhase {
/**
* the phase to render a DOM element and measure its "stable" position
* e.g. {@code { opacity: 0 }}
* @note returning style of `undefined` for this phase would apply no transition.
* @note implementations *should* return undefined in SSR
*/
initialRender = "initialRender",
/**
* the phase to apply transform-like style before transition starts
* e.g. "inverted" transform style that transforms the position measured at `initialRender` to
* the last snapshot of the logical element ("first")
* @note returning `undefined` would apply no transition
*/
beforeTransition = "beforeTransition",
/**
* the phase to apply in-transition style to progress
* e.g. no transform (to undo transform done by `beforeTransition`) and CSS `transition` property.
*/
duringTransition = "duringTransition",
/**
* the phase after transition ends
* e.g. empty (so that the element gets rendered normally)
*/
afterTransition = "afterTransition"
}
export interface TransitionConfig {
logicalId: string;
instanceId: string;
isTarget?: boolean;
transition?: string;
initialOpacity?: number;
}
export interface SpringfieldDelegate {
takeSnapshot(conf: TransitionConfig, elem: HTMLElement): void;
removeSnapshot(conf: TransitionConfig): void;
/**
* @param phase
* @param conf
* @param elem
* @return inline style to render DOM element with
*/
createStyle(phase: TransitionPhase, conf: TransitionConfig, elem: undefined | HTMLElement): undefined | /* React.CSSProperties */ {};
}
export declare const SpringfieldContext: import("react").Context;