export interface PointerSample {
    pointerId: number;
    clientY: number;
    timeStamp: number;
}
export interface PointerCaptureTarget {
    setPointerCapture?(pointerId: number): void;
    releasePointerCapture?(pointerId: number): void;
    hasPointerCapture?(pointerId: number): boolean;
}
export interface PointerMovement {
    deltaY: number;
    deltaSinceLastY: number;
    positionY: number;
    velocityY: number;
}
export interface PointerCompletion extends PointerMovement {
    cancelled: boolean;
}
export interface PointerSessionOptions {
    onStart(positionY: number): void;
    onMove(movement: PointerMovement): void;
    onEnd(completion: PointerCompletion): void;
}
export interface PointerSession {
    readonly active: boolean;
    start(pointer: PointerSample, target?: PointerCaptureTarget): boolean;
    capture(target: PointerCaptureTarget): void;
    move(pointer: PointerSample): void;
    end(pointer: PointerSample): void;
    cancel(): void;
    dispose(): void;
}
export declare function createPointerSession(options: PointerSessionOptions): PointerSession;
