import { ReactNode } from 'react'; import { StatefulComponent } from '@macrostrat/ui-components'; import { Renderer } from './label-primitives'; import { ColumnCtx, ColumnDivision } from '../context'; declare const NoteLayoutContext: import('react').Context; interface NoteLayoutProviderProps { notes: any[]; width: number; paddingLeft: number; noteComponent: any; forceOptions: object; children?: ReactNode; } interface NoteLayoutState { notes?: any[]; elementHeights?: object; columnIndex?: object; nodes?: object; updateHeight?: Function; generatePath: Function; createNodeForNote?: Function; noteComponent?: any; renderer?: typeof Renderer; } export interface NoteLayoutCtx { renderer: typeof Renderer; paddingLeft: number; scale: Function; width: number; updateHeight: Function; generatePath: Function; columnIndex?: any; nodes?: any; } declare class NoteLayoutProvider extends StatefulComponent { static contextType: import('react').Context>; static defaultProps: { paddingLeft: number; estimatedTextHeight(note: any, width: any): number; }; context: ColumnCtx; _previousScale: any; _rendererIndex: object; /** The note set `nodes` was laid out for */ _layoutNotes: any[] | null; constructor(props: any); render(): import('react').FunctionComponentElement>; computeContextValue(): void; savedRendererForWidth(width: any): any; generatePath(node: any, pixelOffset: any): any; createNodeForNote(note: any): any; computeForceLayout(force?: boolean): void; updateHeight(id: any, height: any): void; updateNotes(): void; componentDidMount(): void; componentDidUpdate(prevProps: any, prevState: any): void; } declare function NoteRect(props: any): import('react').DOMElement | null; declare const NoteUnderlay: ({ ...rest }: { [x: string]: any; }) => import('react').FunctionComponentElement; export declare function useNoteLayout(): never; export { NoteLayoutContext, NoteLayoutProvider, NoteRect, NoteUnderlay };