import { HTMLAttributes } from "react";
export type TemporalDate = Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDateTime | Temporal.PlainDate;
export type CartesianDataset = Array<{
id?: string;
name: string;
description?: string;
group?: string;
stroke?: string;
fill?: string;
data: Array<{
x: number | TemporalDate | string;
y: number | TemporalDate | string;
z?: number | string | TemporalDate;
}>;
}>;
export type SegmentDataset = Array<{
id?: string;
name: string;
description?: string;
group?: string;
stroke?: string;
fill?: string;
value: string | number | TemporalDate;
}>;
export type InternalSegmentDataset = Array<{
id: string;
name: string;
description?: string;
group?: string;
stroke: string;
fill: string;
value: string | number | TemporalDate;
}>;
export type InternalCartesianDataset = Array<{
id: string;
name: string;
description?: string;
group?: string;
stroke: string;
fill: string;
data: Array<{
x: number | TemporalDate | string;
y: number | TemporalDate | string;
z?: number | string | TemporalDate;
}>;
}>;
export type InternalGraphContext = {
id: string;
attributes: HTMLAttributes;
gap: {
top: number;
right: number;
bottom: number;
left: number;
};
viewbox: {
x: number;
y: number;
};
data: InternalSegmentDataset | InternalCartesianDataset;
layout: {
rows: string;
columns: string;
};
zoom: {
x: [number, number];
y: [number, number];
};
domain: {
x: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
y: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
};
colors: string[];
interactions: {
hovered: string[];
pinned: string[];
};
datasets: Record>;
};
export type GraphContext = {
id: string;
attributes: HTMLAttributes;
gap: {
top: number;
right: number;
bottom: number;
left: number;
};
viewbox: {
x: number;
y: number;
};
data: CartesianDataset | SegmentDataset;
layout: {
rows: string;
columns: string;
};
zoom: {
x: [number, number];
y: [number, number];
};
domain: {
x: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
y: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
};
colors: string[];
interactions: {
hovered: string[];
pinned: string[];
};
datasets: Record>;
};
export declare const useGraphColumn: () => {
column: number;
left: number;
right: number;
};
export declare const GraphContextProvider: ({ value, children }: {
value: InternalGraphContext;
children: import("react").ReactNode;
}) => import("react").JSX.Element;
export declare const useGraph: () => InternalGraphContext;
export declare const useIsZooming: () => boolean;
export declare const useDataset: (dataset?: string) => InternalGraphContext;
export declare const useDatasets: (datasets?: string[]) => {
datasetName: string;
data: InternalSegmentDataset | InternalCartesianDataset;
domain: {
x: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
y: Array<{
coordinate: number;
tick: string | number | TemporalDate;
}>;
};
colors: string[];
id: string;
attributes: HTMLAttributes;
gap: {
top: number;
right: number;
bottom: number;
left: number;
};
viewbox: {
x: number;
y: number;
};
layout: {
rows: string;
columns: string;
};
zoom: {
x: [number, number];
y: [number, number];
};
interactions: {
hovered: string[];
pinned: string[];
};
datasets: Record>;
}[];
export type Simplify = {
[K in keyof T]: T[K];
};