import { Color } from '../color';
import { Drawable, Painter } from '../core';
import { TimeAxis1D } from './time_axis';
import { TimelineLaneArray } from './timeline_lanes';
import { TimelineUi } from './timeline_ui';
import { TimelineRowPaneFactory } from './timeline_row';
export interface TimelineEventsPainterOptions {
    timelineFont: string;
    timelineFgColor: Color;
    rowTopPadding: number;
    rowBottomPadding: number;
    laneHeight: number;
}
export declare type TimelineEventsPainterFactory = (drawable: Drawable, timeAxis: TimeAxis1D, lanes: TimelineLaneArray, ui: TimelineUi, options: TimelineEventsPainterOptions) => Painter;
export interface TimelineEventsRowPaneOptions {
    rowTopPadding?: number;
    rowBottomPadding?: number;
    laneHeight?: number;
    allowMultipleLanes?: boolean;
    painterFactories?: TimelineEventsPainterFactory[];
}
export declare function newEventsRowPaneFactory(eventsRowOpts?: TimelineEventsRowPaneOptions): TimelineRowPaneFactory;
export interface TimelineEventLimitsPainterOptions {
    lineColor?: Color;
    lineThickness?: number;
}
export declare function newEventLimitsPainterFactory(limitOpts?: TimelineEventLimitsPainterOptions): TimelineEventsPainterFactory;
export declare enum JointType {
    BEVEL = 0,
    MITER = 1
}
export interface TimelineEventBarsPainterOptions {
    topMargin?: number;
    bottomMargin?: number;
    borderThickness?: number;
    cornerType?: JointType;
    defaultColor?: Color;
    defaultBorderColor?: Color;
    selectedBorderColor?: Color;
    dashLength?: number;
    stripeWidth?: number;
    stripeSecondaryWidth?: number;
    stripeSlant?: number;
    featherWidth?: number;
    minimumVisibleWidth?: number;
}
export declare enum FillPattern {
    solid = 0,
    stripe = 1,
    gradient = 2
}
export declare function newEventStripedBarsPainterFactory(barOpts?: TimelineEventBarsPainterOptions): TimelineEventsPainterFactory;
export declare function newEventDashedBordersPainterFactory(barOpts?: TimelineEventBarsPainterOptions): TimelineEventsPainterFactory;
export interface TimelineEventIconsPainterOptions {
    topMargin?: number;
    bottomMargin?: number;
    vAlign?: number;
}
export declare function newEventIconsPainterFactory(iconOpts?: TimelineEventIconsPainterOptions): TimelineEventsPainterFactory;
export interface TimelineEventLabelOptions {
    topMargin?: number;
    bottomMargin?: number;
    leftMargin?: number;
    rightMargin?: number;
    vAlign?: number;
    spacing?: number;
    extendBeyondBar?: boolean;
    textMode?: string;
    iconsEnabled?: boolean;
    iconsForceWidth?: any;
    iconsForceHeight?: any;
    iconsSizeFactor?: number;
    textEnabled?: boolean;
    textDefaultColor?: Color;
    textFont?: string;
}
export declare function newEventLabelsPainterFactory(labelOpts?: TimelineEventLabelOptions): TimelineEventsPainterFactory;
export declare function newEventBarsPainterFactory(barOpts?: TimelineEventBarsPainterOptions): TimelineEventsPainterFactory;
export declare function newCombinedEventPainterFactory(barOpts?: TimelineEventBarsPainterOptions, labelOpts?: TimelineEventLabelOptions, iconOpts?: TimelineEventIconsPainterOptions): TimelineEventsPainterFactory;
