import type { Scale, Scales } from '../composables/useScale.ts';
import type { TimelineItem, TimelineGroup, TimelineMarker } from '../types/timeline.ts';
declare const _default: <GTimelineItem extends TimelineItem, GTimelineGroup extends TimelineGroup, GTimelineMarker extends TimelineMarker>(__VLS_props: {
    onPointermove?: (value: {
        time: number;
        event: PointerEvent;
        item: GTimelineItem | GTimelineMarker;
    }) => any;
    onPointerdown?: (value: {
        time: number;
        event: PointerEvent;
        item: GTimelineItem | GTimelineMarker;
    }) => any;
    onPointerup?: (value: {
        time: number;
        event: PointerEvent;
        item: GTimelineItem | GTimelineMarker;
    }) => any;
    onWheel?: (value: WheelEvent) => any;
    onClick?: (value: {
        time: number;
        event: MouseEvent;
        item: GTimelineItem | GTimelineMarker;
    }) => any;
    onContextmenu?: (value: {
        time: number;
        event: MouseEvent;
        item: GTimelineItem | GTimelineMarker;
    }) => any;
    onMousemoveTimeline?: (value: {
        time: number;
        event: MouseEvent;
    }) => any;
    onMouseleaveTimeline?: (value: {
        event: MouseEvent;
    }) => any;
    onChangeViewport?: (value: {
        start: number;
        end: number;
    }) => any;
    onChangeScale?: (value: Scale) => any;
    groups?: GTimelineGroup[];
    items?: GTimelineItem[];
    markers?: GTimelineMarker[];
    viewportMin?: number;
    viewportMax?: number;
    minViewportDuration?: number;
    maxViewportDuration?: number;
    initialViewportStart?: number;
    initialViewportEnd?: number;
    renderTimestampLabel?: (timestamp: number, scale: {
        unit: string;
        step: number;
    }) => string;
    fixedLabels?: boolean;
    minTimestampWidth?: number;
    maxZoomSpeed?: number;
    activeItems?: TimelineItem['id'][];
    maxOffsetOutsideViewport?: number;
    scales?: Scales[];
    weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
    attrs: any;
    emit: {
        (e: 'pointermove', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'pointerdown', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'pointerup', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'wheel', value: WheelEvent): void;
        (e: 'click', value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'contextmenu', value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'mousemoveTimeline', value: {
            time: number;
            event: MouseEvent;
        }): void;
        (e: 'mouseleaveTimeline', value: {
            event: MouseEvent;
        }): void;
        (e: 'changeViewport', value: {
            start: number;
            end: number;
        }): void;
        (e: 'changeScale', value: Scale): void;
    };
    slots: Partial<Record<`items-${string}`, (_: {
        group: GTimelineGroup;
        itemsInViewport: GTimelineItem[];
        viewportStart: number;
        viewportEnd: number;
    }) => any>> & {
        "timestamps-before"?(_: {
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        timestamp?(_: {
            timestamp: number;
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        "timestamps-after"?(_: {
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        marker?(_: {
            item: GTimelineMarker;
        }): any;
        "group-label"?(_: {
            group: GTimelineGroup;
        }): any;
        item?(_: {
            item: GTimelineItem;
        }): any;
    };
}, __VLS_expose?: (exposed: import("vue").ShallowUnwrapRef<{
    onWheel: (e: WheelEvent) => void;
}>) => void, __VLS_setup?: Promise<{
    props: {
        onPointermove?: (value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }) => any;
        onPointerdown?: (value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }) => any;
        onPointerup?: (value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }) => any;
        onWheel?: (value: WheelEvent) => any;
        onClick?: (value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }) => any;
        onContextmenu?: (value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }) => any;
        onMousemoveTimeline?: (value: {
            time: number;
            event: MouseEvent;
        }) => any;
        onMouseleaveTimeline?: (value: {
            event: MouseEvent;
        }) => any;
        onChangeViewport?: (value: {
            start: number;
            end: number;
        }) => any;
        onChangeScale?: (value: Scale) => any;
        groups?: GTimelineGroup[];
        items?: GTimelineItem[];
        markers?: GTimelineMarker[];
        viewportMin?: number;
        viewportMax?: number;
        minViewportDuration?: number;
        maxViewportDuration?: number;
        initialViewportStart?: number;
        initialViewportEnd?: number;
        renderTimestampLabel?: (timestamp: number, scale: {
            unit: string;
            step: number;
        }) => string;
        fixedLabels?: boolean;
        minTimestampWidth?: number;
        maxZoomSpeed?: number;
        activeItems?: TimelineItem['id'][];
        maxOffsetOutsideViewport?: number;
        scales?: Scales[];
        weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
    expose(exposed: import("vue").ShallowUnwrapRef<{
        onWheel: (e: WheelEvent) => void;
    }>): void;
    attrs: any;
    slots: Partial<Record<`items-${string}`, (_: {
        group: GTimelineGroup;
        itemsInViewport: GTimelineItem[];
        viewportStart: number;
        viewportEnd: number;
    }) => any>> & {
        "timestamps-before"?(_: {
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        timestamp?(_: {
            timestamp: number;
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        "timestamps-after"?(_: {
            scale: {
                unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                step: number;
            };
        }): any;
        marker?(_: {
            item: GTimelineMarker;
        }): any;
        "group-label"?(_: {
            group: GTimelineGroup;
        }): any;
        item?(_: {
            item: GTimelineItem;
        }): any;
    };
    emit: {
        (e: 'pointermove', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'pointerdown', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'pointerup', value: {
            time: number;
            event: PointerEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'wheel', value: WheelEvent): void;
        (e: 'click', value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'contextmenu', value: {
            time: number;
            event: MouseEvent;
            item: GTimelineItem | GTimelineMarker;
        }): void;
        (e: 'mousemoveTimeline', value: {
            time: number;
            event: MouseEvent;
        }): void;
        (e: 'mouseleaveTimeline', value: {
            event: MouseEvent;
        }): void;
        (e: 'changeViewport', value: {
            start: number;
            end: number;
        }): void;
        (e: 'changeScale', value: Scale): void;
    };
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: {
            onPointermove?: (value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }) => any;
            onPointerdown?: (value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }) => any;
            onPointerup?: (value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }) => any;
            onWheel?: (value: WheelEvent) => any;
            onClick?: (value: {
                time: number;
                event: MouseEvent;
                item: GTimelineItem | GTimelineMarker;
            }) => any;
            onContextmenu?: (value: {
                time: number;
                event: MouseEvent;
                item: GTimelineItem | GTimelineMarker;
            }) => any;
            onMousemoveTimeline?: (value: {
                time: number;
                event: MouseEvent;
            }) => any;
            onMouseleaveTimeline?: (value: {
                event: MouseEvent;
            }) => any;
            onChangeViewport?: (value: {
                start: number;
                end: number;
            }) => any;
            onChangeScale?: (value: Scale) => any;
            groups?: GTimelineGroup[];
            items?: GTimelineItem[];
            markers?: GTimelineMarker[];
            viewportMin?: number;
            viewportMax?: number;
            minViewportDuration?: number;
            maxViewportDuration?: number;
            initialViewportStart?: number;
            initialViewportEnd?: number;
            renderTimestampLabel?: (timestamp: number, scale: {
                unit: string;
                step: number;
            }) => string;
            fixedLabels?: boolean;
            minTimestampWidth?: number;
            maxZoomSpeed?: number;
            activeItems?: TimelineItem['id'][];
            maxOffsetOutsideViewport?: number;
            scales?: Scales[];
            weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
        expose(exposed: import("vue").ShallowUnwrapRef<{
            onWheel: (e: WheelEvent) => void;
        }>): void;
        attrs: any;
        slots: Partial<Record<`items-${string}`, (_: {
            group: GTimelineGroup;
            itemsInViewport: GTimelineItem[];
            viewportStart: number;
            viewportEnd: number;
        }) => any>> & {
            "timestamps-before"?(_: {
                scale: {
                    unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                    step: number;
                };
            }): any;
            timestamp?(_: {
                timestamp: number;
                scale: {
                    unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                    step: number;
                };
            }): any;
            "timestamps-after"?(_: {
                scale: {
                    unit: "ms" | "seconds" | "minutes" | "hours" | "days" | "weeks" | "months" | "years";
                    step: number;
                };
            }): any;
            marker?(_: {
                item: GTimelineMarker;
            }): any;
            "group-label"?(_: {
                group: GTimelineGroup;
            }): any;
            item?(_: {
                item: GTimelineItem;
            }): any;
        };
        emit: {
            (e: 'pointermove', value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }): void;
            (e: 'pointerdown', value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }): void;
            (e: 'pointerup', value: {
                time: number;
                event: PointerEvent;
                item: GTimelineItem | GTimelineMarker;
            }): void;
            (e: 'wheel', value: WheelEvent): void;
            (e: 'click', value: {
                time: number;
                event: MouseEvent;
                item: GTimelineItem | GTimelineMarker;
            }): void;
            (e: 'contextmenu', value: {
                time: number;
                event: MouseEvent;
                item: GTimelineItem | GTimelineMarker;
            }): void;
            (e: 'mousemoveTimeline', value: {
                time: number;
                event: MouseEvent;
            }): void;
            (e: 'mouseleaveTimeline', value: {
                event: MouseEvent;
            }): void;
            (e: 'changeViewport', value: {
                start: number;
                end: number;
            }): void;
            (e: 'changeScale', value: Scale): void;
        };
    };
};
export default _default;
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
