import Graph from 'graphology-types';
export type XYPosition = {x: number; y: number};
export type Position = {[dimension: string]: number};
export type LayoutMapping
= {[node: string]: P};
type FlatArrayLayout =
| Array
| Uint8ClampedArray
| Uint8Array
| Uint16Array
| Uint32Array
| Int8Array
| Int16Array
| Int32Array
| Float32Array
| Float64Array;
export type CollectLayoutOptions = {
dimensions?: Array;
exhaustive?: boolean;
};
export function collectLayout(graph: Graph): LayoutMapping;
export function collectLayout(
graph: Graph,
options: CollectLayoutOptions
): LayoutMapping;
export type CollectLayoutAsFlatArrayOptions = {
dimensions?: Array;
type?: new () => FlatArrayLayout;
};
export function collectLayoutAsFlatArray(graph: Graph): Float64Array;
export function collectLayoutAsFlatArray(
graph: Graph,
options: CollectLayoutAsFlatArrayOptions
): FlatArrayLayout;
export type AssignLayoutOptions = {
dimensions?: Array;
};
export function assignLayout(
graph: Graph,
layout: LayoutMapping
): void;
export function assignLayout(
graph: Graph,
layout: LayoutMapping,
options: AssignLayoutOptions
): void;
export function assignLayoutAsFlatArray(
graph: Graph,
layout: FlatArrayLayout,
options?: AssignLayoutOptions
): void;