import type { Options } from '../../graph' import type { Model, Node } from '../../model' import type { DndOptions } from '../dnd' import type { Stencil } from '.' export interface StencilOptions extends DndOptions { title: string groups?: StencilGroup[] search?: StencilFilter placeholder?: string notFoundText?: string collapsable?: boolean stencilGraphWidth: number stencilGraphHeight: number stencilGraphOptions?: Options stencilGraphPadding?: number layout?: (this: Stencil, model: Model, group?: StencilGroup | null) => any layoutOptions?: any } export type StencilFilter = StencilFilters | StencilFilterFn | boolean export type StencilFilters = { [shape: string]: string | string[] | boolean } export type StencilFilterFn = ( this: Stencil, cell: Node, keyword: string, groupName: string | null, stencil: Stencil, ) => boolean export interface StencilGroup { name: string title?: string collapsed?: boolean collapsable?: boolean nodeMovable?: boolean graphWidth?: number graphHeight?: number graphPadding?: number graphOptions?: Options layout?: (this: Stencil, model: Model, group?: StencilGroup | null) => any layoutOptions?: any }