import { type Cloneable } from './cloneable';
import { type Disposable } from './disposable';
import * as Timestamp from './timestamp';
export type FromInterpolationFn<$DisplayState extends DisplayState> = (state1: $DisplayState, state2: $DisplayState, t: number) => $DisplayState;
export type DisplayState = Cloneable & Disposable;
export declare class Tweened<$DisplayState extends DisplayState> implements Cloneable {
    private readonly _displayState;
    private readonly timestamp;
    constructor(_displayState: $DisplayState, timestamp: number);
    displayState(): $DisplayState;
    floatTimestamp(): Timestamp.FloatTimestamp;
    clone(): this;
}
export declare function timestampedFromInterpolation<$DisplayState extends DisplayState>(state1: Timestamp.Timestamped<$DisplayState>, state2: Timestamp.Timestamped<$DisplayState>, t: number, fromInterpolation: FromInterpolationFn<$DisplayState>): Timestamp.Timestamped<$DisplayState>;
export declare function tweenedFromInterpolation<$DisplayState extends DisplayState>(state1: Timestamp.Timestamped<$DisplayState>, state2: Timestamp.Timestamped<$DisplayState>, t: number, fromInterpolation: FromInterpolationFn<$DisplayState>): Tweened<$DisplayState>;
export declare function tweenedFromTimestamped<$DisplayState extends DisplayState>(timestamped: Timestamp.Timestamped<$DisplayState>): Tweened<$DisplayState>;
//# sourceMappingURL=display_state.d.ts.map