///
import { SpringConfig } from 'simple-performant-harmonic-oscillator';
import SpringyDOMElement from './SpringyDOMElement';
export declare type SpringyStyleValue = number | 'auto';
export declare type SpringPropertyConfig = SpringConfig & {
configWhenGettingBigger?: SpringConfig;
configWhenGettingSmaller?: SpringConfig;
onEnterFromValueOffset?: number;
onEnterFromValue?: number;
onEnterToValue?: SpringyStyleValue;
onExitFromValue?: SpringyStyleValue;
onExitToValue?: number;
units?: string;
};
export declare type DOMSpringConfigMap = {
[key: string]: SpringPropertyConfig;
};
export declare type InternalSpringyProps = {
forwardedRef: any;
ComponentToWrap: string;
configMap?: DOMSpringConfigMap;
instanceRef?: (ref: SpringyDOMElement) => void;
styleOnExit?: {
[key: string]: string | number;
};
globalUniqueIDForSpringReuse?: string;
onSpringyPropertyValueUpdate?: (property: string, value: number) => void;
onSpringyPropertyValueAtRest?: (property: string, value: number) => void;
springyOrderedIndex?: number;
springyStyle?: {
[key: string]: SpringyStyleValue;
};
};
declare type SpringyProps = Pick>;
declare type StyleOnExitFunction = (node: HTMLElement) => JSX.IntrinsicElements[T];
export declare type StyleOnExit = JSX.IntrinsicElements[T] | StyleOnExitFunction;
export declare type SpringyDOMWrapper = (ComponentToWrap: T, configMap?: DOMSpringConfigMap, styleOnExit?: StyleOnExit) => React.ComponentClass;
export declare type StyleObject = {
[key: string]: number | string;
};
interface DOMRectReadOnly {
readonly x: number;
readonly y: number;
readonly width: number;
readonly height: number;
readonly top: number;
readonly right: number;
readonly bottom: number;
readonly left: number;
}
declare global {
interface ResizeObserverCallback {
(entries: ResizeObserverEntry[], observer: ResizeObserver): void;
}
interface ResizeObserverEntry {
readonly target: Element;
readonly contentRect: DOMRectReadOnly;
}
interface ResizeObserver {
observe(target: Element): void;
unobserve(target: Element): void;
disconnect(): void;
}
}
declare var ResizeObserver: {
prototype: ResizeObserver;
new (callback: ResizeObserverCallback): ResizeObserver;
};
interface ResizeObserver {
observe(target: Element): void;
unobserve(target: Element): void;
disconnect(): void;
}
export default ResizeObserver;