import { AnimatedLayoutOptions, BoundingBox12, BoundingBoxWH, SortingFunction } from 'cytoscape';
declare class BaseLayoutOptionsImpl {
    ready(e: cytoscape.LayoutEventObject): void;
    stop(e: cytoscape.LayoutEventObject): void;
}
export declare class NullLayoutOptionsImpl extends BaseLayoutOptionsImpl {
    name: string;
}
export declare class AnimateLayoutOptionsImpl extends BaseLayoutOptionsImpl implements AnimatedLayoutOptions {
    zoom?: number;
    pan?: number;
    animate: boolean;
    animationDuration: number;
    animationEasing: undefined;
    animateFilter: (node: any, i: any) => boolean;
}
export declare class PresetLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
    name: string;
    fit?: boolean;
    padding?: number;
    positions?: null;
    transform: (node: any, position: any) => any;
}
export declare class ShapedLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
    fit: boolean;
    padding: number;
    boundingBox?: BoundingBox12 | BoundingBoxWH | undefined;
    avoidOverlap: boolean;
    nodeDimensionsIncludeLabels: boolean;
    spacingFactor: number;
    sort?: SortingFunction;
    transform: (node: any, position: any) => any;
}
export declare class GridLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
    name: string;
    avoidOverlapPadding: number;
    condense: boolean;
    rows?: number | undefined;
    cols?: number | undefined;
    position: null;
}
export declare class RandomLayoutOptionsImpl extends AnimateLayoutOptionsImpl {
    name: string;
    fit: boolean;
    padding: number;
    boundingBox: cytoscape.BoundingBox12 | cytoscape.BoundingBoxWH | undefined;
    transform: (node: any, position: any) => any;
}
export declare class CircleLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
    name: string;
    radius?: number;
    startAngle: number;
    sweep?: number;
    clockwise?: true;
}
export declare class ConcentricLayoutOptionsImpl {
    name: string;
    sweep?: number;
    clockwise?: boolean;
    startAngle: number;
    fit?: boolean;
    nodeDimensionsIncludeLabels?: true;
    equidistant?: false;
    minNodeSpacing?: number | undefined;
    boundingBox?: any;
    height: null;
    width: null;
    spacingFactor?: number;
    concentric(node: {
        degree(): number;
    }): number;
    levelWidth(node: {
        maxDegree(): number;
    }): number;
}
export declare class BreadthFirstLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
    name: string;
    directed: boolean;
    circle: boolean;
    roots?: string;
    maximalAdjustments?: number;
    maximal: boolean;
    grid: boolean;
    nodeDimensionsIncludeLabels: boolean;
}
export declare class CoseLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
    name: string;
    animationThreshold: number;
    refresh: number;
    randomize: boolean;
    componentSpacing: number;
    nodeOverlap: number;
    nestingFactor: number;
    gravity: number;
    numIter: number;
    initialTemp: number;
    coolingFactor: number;
    minTemp: number;
    nodeRepulsion: (node: any) => number;
    idealEdgeLength: (edge: any) => number;
    edgeElasticity: (edge: any) => number;
}
type RankDir = 'LR' | 'TB';
type Ranker = 'network-simplex' | 'tight-tree' | 'longest-path';
export declare class DagreLayoutOptionsImpl extends ShapedLayoutOptionsImpl {
    constructor();
    name: string;
    nodeSep?: number;
    edgeSep?: number;
    rankSep?: number;
    rankDir: RankDir;
    ranker?: Ranker;
    minLen: (edge: any) => number;
    edgeWeight: (edge: any) => number;
}
export {};
