import React from "react";
import type { Layer, LayerPublicProps } from "../services/Layer";
/**
 * Extracts layer instance type from constructor
 */
type LayerInstanceForConstructor<TLayer extends Constructor<Layer>> = TLayer extends Constructor<infer LayerInstance> ? LayerInstance : never;
/**
 * Props for GraphLayer component
 */
export interface GraphLayerProps<TLayer extends Constructor<Layer> = Constructor<Layer>> {
    /**
     * Layer constructor class
     */
    layer: TLayer;
    /**
     * Props to pass to layer constructor
     */
    props?: LayerPublicProps<TLayer>;
    /**
     * Ref to access layer instance
     */
    ref?: React.Ref<LayerInstanceForConstructor<TLayer>>;
}
/**
 * GraphLayer component provides declarative way to add existing Layer classes to the graph
 */
export declare const GraphLayer: React.ForwardRefExoticComponent<Omit<GraphLayerProps<Constructor<Layer<import("../services/Layer").LayerProps, import("../services/Layer").LayerContext, import("..").TComponentState>>>, "ref"> & React.RefAttributes<Layer<import("../services/Layer").LayerProps, import("../services/Layer").LayerContext, import("..").TComponentState>>>;
export {};
