import { SubgraphInput } from './SubgraphInput'; import { SubgraphOutputNode } from './SubgraphOutputNode'; import { INodeInputSlot, INodeOutputSlot, Point, ReadOnlyRect } from '../interfaces'; import { LGraphNode } from '../LGraphNode'; import { RerouteId } from '../Reroute'; import { LLink } from '../LLink'; import { SubgraphSlot } from './SubgraphSlotBase'; /** * An output "slot" from a subgraph to a parent graph. * * IMPORTANT: A subgraph "output" is both an output AND an input. It creates an extra link connection point between * a parent graph and a subgraph, so is conceptually similar to a reroute. * * This can be a little confusing, but is easier to visualise when imagining editing a subgraph. * You have "Subgraph Outputs", because they go from inside the subgraph and out, but links to them come from "node outputs". * * Functionally, however, when editing a subgraph, that "subgraph output" is the "target" or "input side" of a link. */ export declare class SubgraphOutput extends SubgraphSlot { parent: SubgraphOutputNode; connect(slot: INodeOutputSlot, node: LGraphNode, afterRerouteId?: RerouteId): LLink | undefined; get labelPos(): Point; arrange(rect: ReadOnlyRect): void; /** * Checks if this slot is a valid target for a connection from the given slot. * For SubgraphOutput (which acts as an input inside the subgraph), * the fromSlot should be an output slot. */ isValidTarget(fromSlot: INodeInputSlot | INodeOutputSlot | SubgraphInput | SubgraphOutput): boolean; }