import type { ChartXValue } from "../data";
export type ChartViewportInitialIndex = "start" | "end" | number;
export type ChartViewportWindowHandle = "start" | "end";
export type ChartViewportPresetName = "1D" | "1W" | "1M" | "3M" | "6M" | "YTD" | "1Y" | "ALL";
export type ResolveChartViewportOptions = {
    itemCount: number;
    scrollable?: boolean | undefined;
    viewportWidth: number;
    visiblePoints?: number | undefined;
};
export type ResolvedChartViewport = {
    contentWidth: number;
    itemCount: number;
    maxOffset: number;
    pointSpacing: number;
    scrollable: boolean;
    viewportWidth: number;
    visiblePoints: number;
};
export type ResolveChartViewportWindowOptions = {
    endIndex?: number | undefined;
    initialIndex?: ChartViewportInitialIndex | undefined;
    itemCount: number;
    startIndex?: number | undefined;
    visiblePoints?: number | undefined;
};
export type ResolvedChartViewportWindow = {
    endIndex: number;
    isWindowed: boolean;
    itemCount: number;
    startIndex: number;
    visibleCount: number;
};
export type ResolveChartViewportPresetWindowOptions = {
    preset: ChartViewportPresetName;
    xValues: readonly ChartXValue[];
};
export type ResolveChartViewportWindowFromPositionOptions = {
    itemCount: number;
    locationX: number;
    plotWidth: number;
    plotX: number;
    visibleCount: number;
};
export type ResolveChartViewportIndexFromPositionOptions = {
    itemCount: number;
    locationX: number;
    plotWidth: number;
    plotX: number;
};
export type ResolveChartViewportWindowFromHandlePositionOptions = {
    currentWindow: ResolvedChartViewportWindow;
    handle: ChartViewportWindowHandle;
    itemCount: number;
    locationX: number;
    minVisibleCount?: number | undefined;
    plotWidth: number;
    plotX: number;
};
export declare const resolveChartViewport: ({ itemCount, scrollable, viewportWidth, visiblePoints }: ResolveChartViewportOptions) => ResolvedChartViewport;
export declare const resolveChartViewportInitialOffset: ({ initialIndex, viewport }: {
    initialIndex?: ChartViewportInitialIndex | undefined;
    viewport: ResolvedChartViewport;
}) => number;
export declare const resolveChartViewportWindow: ({ endIndex, initialIndex, itemCount, startIndex, visiblePoints }: ResolveChartViewportWindowOptions) => ResolvedChartViewportWindow;
export declare const sliceChartViewportData: <TData>(data: readonly TData[], window: ResolvedChartViewportWindow) => TData[];
export declare const resolveChartViewportIndexFromPosition: ({ itemCount, locationX, plotWidth, plotX }: ResolveChartViewportIndexFromPositionOptions) => number;
export declare const resolveChartViewportWindowFromPosition: ({ itemCount, locationX, plotWidth, plotX, visibleCount }: ResolveChartViewportWindowFromPositionOptions) => ResolvedChartViewportWindow;
export declare const resolveChartViewportWindowFromHandlePosition: ({ currentWindow, handle, itemCount, locationX, minVisibleCount, plotWidth, plotX }: ResolveChartViewportWindowFromHandlePositionOptions) => ResolvedChartViewportWindow;
export declare const resolveChartViewportPresetWindow: ({ preset, xValues }: ResolveChartViewportPresetWindowOptions) => ResolvedChartViewportWindow;
//# sourceMappingURL=viewport.d.ts.map