import { Constants } from '@kismet.ts/shared'; import type { SequenceAction, SequenceCondition } from '../structures/index.js'; import type { ProcessId } from '../managers/index.js'; import type { KismetObjectCommentOptions } from '../item/index.js'; /** * Options for layouts * * - none: set no position * - grid: place all nodes in a grid. To have custom control over the grid placements, use Item#setPosition * - waterfall: place the next object in the sequence right and below the current object * - mountain: place the next object in the sequence right and above the current object * - schema: apply the options in the given schema * * @default 'none' */ export type PositionStyleOptions = Constants.PositionStyleOption; /** * Position options for variables * * - inherit: set default positions * - global: set all variables in global box * - attach: place variables close to the first connected item * - schema: apply the options in the given schema * * @default 'inherit' */ export type VariablePositionStyleOptions = Constants.VariablePositionStyleOption; export interface layoutOptions { startX?: number; startY?: number; spaceBetween?: number; } /** * Options for creating a new kismet sequence for a project * * @param projectName - The name of the project * @param layout - Default position options for sequences in the project */ export interface projectOptions { projectName: string; debug?: boolean; layout?: SequencePositionOptions; } export interface SequenceSchemaVariableOptions { style: Omit; itemClass?: string; globalOptions?: { bounds: [number, number, number, number]; }; } export interface SequenceSchemaOptions { event?: { id: string; connectionName?: string; }; layout: { type?: T; style: Omit; variables?: SequenceSchemaVariableOptions[]; options: Required; }[]; } export interface SequencePositionManagerOptions { layoutOptions: Required; projectId?: ProcessId; style?: PositionStyleOptions; schema?: SequenceSchemaOptions[]; } export type SequencePositionOptions = Omit, 'layoutOptions'> & { position?: Required; }; export interface SequenceViewOptions { x?: number; y?: number; zoom?: number; } export interface SequenceBaseConstructorOptions { layout?: SequencePositionOptions; name?: string; mainSequence?: boolean; index?: number; project?: ProcessId; defaultView?: Required; } export type SequenceOptions = Omit, 'mainSequence' | 'index'> & { objects?: T[]; name: string; }; export interface BaseKismetEventOptions { maxTriggerCount?: number; triggerDelay?: number; enabled?: boolean; playerOnly?: boolean; clientSideOnly?: boolean; } export interface BaseKismetVariableOptions { name?: string; } export interface BaseKismetActionOptions { next?: SequenceAction | SequenceCondition; } export type KismetEventOptions = T & BaseKismetEventOptions; export type KismetVariableOptions = T & BaseKismetVariableOptions; export type BaseKismetActionRequiredOptions = T & BaseKismetActionOptions; export type KismetActionRequiredOptions = BaseKismetActionRequiredOptions & KismetObjectCommentOptions; //# sourceMappingURL=options.d.ts.map