import { Dimensions, Point, TrackContext } from './type';
export declare class Track {
    protected _posOnly?: boolean | undefined;
    protected _localVal: {
        position: {
            x: number;
            y: number;
        };
        dimensions: {
            width: number;
            height: number;
        };
    };
    protected _ratioVal: {
        ratioPosition: {
            x: number;
            y: number;
        };
        ratioDimensions: {
            width: number;
            height: number;
        };
    };
    protected _visible: boolean;
    protected _context: TrackContext;
    protected _needTransition: boolean;
    constructor(context: TrackContext, _posOnly?: boolean | undefined);
    get realVal(): {
        position: {
            x: number;
            y: number;
        };
        dimensions: {
            width: number;
            height: number;
        };
    };
    get ratioVal(): {
        ratioPosition: {
            x: number;
            y: number;
        };
        ratioDimensions: {
            width: number;
            height: number;
        };
    };
    get isCovered(): boolean;
    get visible(): boolean;
    get needTransition(): boolean;
    get trackContext(): TrackContext;
    setReal(position: Point, dimensions: Dimensions, needTransition?: boolean): void;
    setRealPos(position: Point, needTransition?: boolean): void;
    setRealDimensions(dimensions: Dimensions, needTransition?: boolean): void;
    setRatio(position: Point, dimensions: Dimensions, needTransition?: boolean): void;
    setRatioPos(ratioPos: Point, needTransition?: boolean): void;
    setRatioDimensions(ratioDimensions: Dimensions, needTransition?: boolean): void;
    protected fixPos(pos: Point, local: boolean): {
        x: number;
        y: number;
    };
    updateContext(context: Partial<TrackContext>): void;
    setVisibility(visible: boolean): void;
    reposition(needTransition?: boolean): void;
}
