import { ZoomTransform } from 'd3-zoom';
import { Scale, Range, Domain } from '../common/interfaces';
import { ScaleHandlerTicks, ScaleHandler } from './interfaces';
/**
 * Class that controls reference scaling in the WellogComponent.
 * The scale handler is an abstraction to allow adding custom
 * scaling behaviour, such as mapping data between domains.
 */
export default class BasicScaleHandler implements ScaleHandler {
    scale: Scale;
    protected _baseDomain: Domain;
    constructor(baseDomain?: Domain);
    /**
     * Update scale according to transform
     */
    rescale(transform: ZoomTransform, axis?: string): ScaleHandler;
    /**
     * Return ticks based on scale's current domain and range
     */
    ticks(): ScaleHandlerTicks;
    /**
     * set or get base domain
     */
    baseDomain(): Domain;
    baseDomain(newDomain: Domain): ScaleHandler;
    /**
     * set or get scale's range
     */
    range(): Range;
    range(newRange: Range): ScaleHandler;
    /**
     * Getter for the scale exposed to the wellog component's tracks
     */
    get dataScale(): Scale;
}
