import { Snap } from '..';
import { ISnapTransitionArg, SnapSlide } from '../..';
import { IProps } from './types';
export declare class SnapTrack {
    private props;
    private _slides;
    private ctx;
    /** The animation frame */
    private _raf;
    /** The animationtimeline */
    private _tm?;
    /** Interpolation impulse */
    private _impulse;
    /** The current track value */
    private _current;
    /** The target track value */
    private _target;
    /** Target slide index */
    private _targetIndex?;
    /** Whether the track is destroyed */
    private _isDestroyed;
    constructor(props: typeof Snap.prototype.props, _slides: () => SnapSlide[], ctx: IProps);
    private get slides();
    /** Gets the target slide index */
    get targetIndex(): number | undefined;
    /** Gets the interpolation impulse */
    get impulse(): number;
    /** Gets the current track value. */
    get current(): number;
    /** Sets the current track value */
    set current(value: number);
    /** Gets the target track value. */
    get target(): number;
    /** Sets the target track value */
    set target(value: number);
    /** Detect if can loop */
    get canLoop(): boolean;
    /** Get looped current value */
    get loopedCurrent(): number;
    /** Get track offset */
    get offset(): number;
    /** Get loop count */
    get loopCount(): number;
    /** If transition in progress */
    get isTransitioning(): boolean;
    /** Get minimum track value */
    get min(): number;
    /** Get maximum track value */
    get max(): number;
    /** Get track progress. From 0 to 1 if not loop. From -Infinity to Infinity if loop */
    get progress(): number;
    /** If the start has been reached */
    get isStart(): boolean;
    /** If the end has been reached */
    get isEnd(): boolean;
    /** Whether the track is interpolated */
    private get isInterpolated();
    /** Handle RAF update, interpolate track values */
    private _handleRaf;
    /** Awake requestAnimationFrame */
    awake(): void;
    /** Set track target value */
    updateTarget(value: number): void;
    /** Clamp target value between min and max values */
    clampTarget(): void;
    /** Set a value to current & target value instantly */
    set(value: number): void;
    /** Loop a coordinate if can loop */
    loopCoord(coord: number): number;
    /** Interpolate the current track value */
    private _lerp;
    /** Go to a definite coordinate */
    toCoord(coordinate: number, options?: ISnapTransitionArg): boolean;
    /** Set target index */
    setTargetIndex(value: number | undefined): void;
    /** Cancel sticky behavior */
    cancelTransition(): void;
    /** Destroy the instance */
    destroy(): void;
}
//# sourceMappingURL=index.d.ts.map