import { Orderable } from "./bufferedqueue.js"; import { Extent } from "./extent.js"; import { Resource, Demandable } from "./resource.js"; import { OrderingState, RelinkingOrder } from "./common"; export declare class Behavior implements Orderable { demands: Set | null; orderingDemands: Set | null; supplies: Set | null; block: (extent: Extent) => void; enqueuedWhen: number | null; removedWhen: number | null; extent: Extent; orderingState: OrderingState; order: number; untrackedDemands: Demandable[] | null; untrackedDynamicDemands: Demandable[] | null; untrackedSupplies: Resource[] | null; untrackedDynamicSupplies: Resource[] | null; constructor(extent: Extent, demands: Demandable[] | null, supplies: Resource[] | null, block: (extent: Extent) => void); toString(): string; setDynamicDemands(newDemands: (Demandable | undefined)[] | null): void; setDynamicSupplies(newSupplies: (Resource | undefined)[] | null): void; } export declare class BehaviorBuilder { extent: T; untrackedDemands: Demandable[] | null; untrackedSupplies: Resource[] | null; dynamicDemandSwitches: Demandable[] | null; dynamicDemandLinks: ((ext: T) => (Demandable | undefined)[] | null) | null; dynamicDemandRelinkingOrder: RelinkingOrder; dynamicSupplySwitches: Demandable[] | null; dynamicSupplyLinks: ((ext: T) => (Resource | undefined)[] | null) | null; dynamicSupplyRelinkingOrder: RelinkingOrder; constructor(extent: T); demands(...demands: Demandable[]): this; supplies(...supplies: Resource[]): this; dynamicDemands(switches: Demandable[], links: ((ext: T) => (Demandable | undefined)[] | null), relinkingOrder?: RelinkingOrder): this; dynamicSupplies(switches: Demandable[], links: ((ext: T) => (Resource | undefined)[] | null), relinkingOrder?: RelinkingOrder): this; runs(block: (ext: T) => void): Behavior; }