// (c) Copyright 2013-2026 Boyum IT Solutions GmbH. All rights reserved. Version 10.1.2 (VSW SE)
declare module "nwaf_rab" {
  //ATTENTION: Most of the options and properties declared as deprecated in the IDD are not provided here for the sake of clarity!

  //#region Version constants
  export const vswVersion: string;
  export const nwafVersion: string;
  //#endregion Version constants

  //#region Types for option values and property values
  export type VSWidgetValue<T> = T | null;
  export type VSWidgetEnumValue<T> = VSWidgetValue<T | number>;

  export type VSWidgetProperty<T> = VSWidgetValue<T>;
  export type VSWidgetEnumProperty<T> = VSWidgetEnumValue<T>;
  //#endregion Types

  //#region Enums
  export enum BarDesigns {
    Simple = 0,
    Entries = 1,
    ComplexShape = 2,
    Symbols = 4,
    Status = 8,
    Constraints = 16,
    ReleaseAndDueDate = 32,
    Baseline = 64,
    ProgressAndPredictedEnd = 128,
    Text = 256,
    BaselineReleaseAndDueDate = 512,
    TonedDownColoring = 65536,
    ReducedHeight = 131072,

    Default = 65535,
    DefaultReduced = 16711680,
  }

  export enum BarDragModes {
    None = 0,
    DragStart = 1,
    DragEnd = 2,
    DragHorizontally = 4,
    DragVertically = 8,
    DragAutoHorOrVer = 16,
    DragSmartHorOrVer = 256,
  }

  export const ActivityBarDragModes: typeof BarDragModes;
  export const AllocationBarDragModes: typeof BarDragModes;

  export enum BarShape {
    Regular = 0,
    Summary = 1,
    Diamond = 2,
    Rectangle = 3,
    Symbol = 4,
  }

  export const ActivityBarShape: typeof BarShape;
  export const AllocationBarShape: typeof BarShape;

  export enum BarSortMode {
    StartAndEnd = 0,
    ByRowSortModeOrCompareObjects = 1,
    ByRowSortModeOrCompareObjectsOnSameStart = 2,
  }

  export enum CollapseExpandButtonSymbolsMode {
    Latest = 0,
    LegacyVersion1 = 1,
    Version2 = 2,
  }

  export enum CollapseState {
    Unchanged = -1,
    Expanded = 0,
    Collapsed = 1,
  }

  export enum CollapseStateTargets {
    Default = 1,
    Rows = 2,
    AllocationRows = 4,
    CurvePanes = 8,
  }

  export enum CurveInterpolationType {
    StepAfter = 0,
    Linear = 1,
  }

  export enum CurveType {
    PointCurve = 0,
    CurveStack = 1,
    CurveList = 2,
  }

  export enum DateLineAppearanceType {
    Permanent = 0,
    PointerOverAttachedBar = 1,
  }

  export enum DateLineCaptionOrientation {
    Horizontal = 1,
    Vertical = 2,
  }

  export enum DateLineCaptionPosition {
    Left = 1,
    Center = 2,
    Right = 4,
    TopLeft = 9, // Left + 8
    TopCenter = 10, // Center + 8
    TopRight = 12, // Right + 8
  }

  export enum DateLineGridModes {
    None = 0,
    Auto = 1,
    Weekly = 2,
    Daily = 4,
  }

  export enum DayOfWeek {
    Sunday = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
  }

  export enum HorizontalAlignment {
    Left = 0,
    Center = 1,
    Right = 2,
  }

  export enum HorizontallyScrollableViewArea {
    Table = 0,
    TimeArea = 1,
    EntitiesTable = 2,
  }

  export enum HorizontalScrollPosition {
    Left = 1,
    Right = 2,
  }

  export enum LinkMarker {
    None = 0,
    FilledArrow = 1,
  }

  export enum LinkRoutingType {
    Curved = 1,
    Orthogonal = 2,
  }

  export enum MultipleSelectionMode {
    Disabled = 0,
    Enabled = 1,
    ExtendedRecognition = 2,
  }

  export enum Locale {
    "da" = "da",
    "da_DK" = "da-DK",
    "de" = "de",
    "de_DE" = "de-DE",
    "en_gb" = "en-gb",
    "en" = "en",
    "en_US" = "en-US",
    "es" = "es",
    "es_ES" = "es-ES",
    "fi" = "fi",
    "fi_FI" = "fi-FI",
    "fr" = "fr",
    "fr_FR" = "fr-FR",
    "it" = "it",
    "it_IT" = "it-IT",
    "ja" = "ja",
    "ja_JP" = "ja-JP",
    "nl" = "nl",
    "nl_NL" = "nl-NL",
    "nb" = "nb",
    "nb_NO" = "nb-NO",
    "pl" = "pl",
    "pl_PL" = "pl-PL",
    "pt" = "pt",
    "pt_PT" = "pt-PT",
    "pt_br" = "pt-br",
    "ru" = "ru",
    "ru_RU" = "ru-RU",
    "sv" = "sv",
    "sv_SE" = "sv-SE",
    "th" = "th",
    "th_TH" = "th-TH",
    "zh_cn" = "zh-cn",
    "no" = "no",
  }

  export enum ObjectType {
    TimeArea = -2,
    Timescale = -1,
    Activity = 1,
    Allocation = 2,
    Resource = 5,
    Link = 6,
    Curve = 7,
    Entity = 13,
    PeriodHighlighter = 14,
    Symbol = 15,
    DateLine = 16,
    TooltipTemplate = 17,
    TableRowDefinition = 18,
    TableRowDefinitions = 18,
    Calendar = 20,
    HierarchySupplementaryDefinition = 21,
    Skill = 22,
  }

  export enum ObjectTypeForRemoveAll {
    AllDataObjects = -2,
    AllObjects = -1,
    Activity = 1,
    Allocation = 2,
    Resource = 5,
    Link = 6,
    Curve = 7,
    Entity = 13,
    PeriodHighlighter = 14,
    Symbol = 15,
    DateLine = 16,
    TooltipTemplate = 17,
    TableRowDefinition = 18,
    TableRowDefinitions = 18,
    Calendar = 20,
    HierarchySupplementaryDefinition = 21,
    Skill = 22,
  }

  export enum PageOrientation {
    Portrait = 0,
    Landscape = 1,
  }

  export enum PaneIndex {
    LoadCurve = 0,
    InventoryCurve = 1,
  }

  export enum PanningMode {
    None = 0,
    HorizontallyOnly = 1,
    VerticallyOnly = 2,
    HorAndVer = 3,
    AutoHorOrVer = 4,
  }

  export enum PatternType {
    None = -1,
    VerticalHatch = 0,
    ForwardHatch = 1,
    BackwardHatch = 2,
  }

  export enum PrintingMode {
    Single = 0,
    Cutting = 1,
    Paging = 2,
  }

  export enum ProgressBarWidthCalculationMode {
    ConsiderWorkingTimesOnly = 0,
    ConsiderWorkingAndNonworkingTimes = 1,
  }

  export enum RelationType {
    FinishToStart = 0,
    FinishToFinish = 1,
    StartToStart = 2,
    StartToFinish = 3,
    SourceDateToStart = 4,
    SourceDateToFinish = 5,
    FinishToTargetDate = 8,
    StartToTargetDate = 10,
    SourceDateToTargetDate = 12,
  }

  export enum RowDesigns {
    None = 0,
    Empty = 0,
    Bars = 1,
    BarsStacked = 2,
    BarsInHiddenDescendantRows = 4,
    CalendarGrid = 8,
  }

  export enum RowDragModes {
    None = 0,
    DragVertically = 8,
    DragOutside = 32,
    DragOnSameLevelOnly = 64,
    DragInSameTableParentOnly = 128,
  }

  export enum RowInsertionMode {
    None = 0,
    InsertAsChild = 1,
    InsertAsNextSibling = 2,
    InsertAsPreviousSibling = 3,
  }

  export enum RowSortMode {
    None = 0,
    Ascending = 1,
    Descending = 2,
    AscendingStartAndEnd = 3,
  }

  /*!SE*/export enum SelectionBehavior {
  /*!SE*/  Framing = 0,
  /*!SE*/  Highlighting = 1,
  /*!SE*/}

  export enum SelectionChangedReason {
    Click = 0,
    BackgroundClick = 1,
    ContextMenu = 2,
    DragStart = 3,
  }

  export enum SnapTargets {
    None = 0,
    Start = 1,
    End = 2,
    DateLines = 4,
    CalendarGrids = 8,
    DateLineGrids = 16,
  }

  export enum SymbolInclusionMode {
    Default = 0,
    EmbeddingReference = 1,
  }

  export enum TableType {
    Gantt = 0,
    Entities = 1,
  }

  export enum TargetPositions {
    Necessary = 0,
    Left = 1,
    HCenter = 2,
    Right = 4,
    Top = 8,
    VCenter = 16,
    Bottom = 32,
  }

  export enum TextWrapMode {
    None = 0,
    Line = 1,
  }

  export enum TimeType {
    WorkingTime = 1,
    NonworkingTime = 2,
    NonWorkingTime = 2,
  }

  export enum TimeUnit {
    Seconds = 0,
    Minutes = 1,
    Hours = 2,
    Days = 3,
    Weeks = 4,
    Months = 5,
    Quarters = 6,
    Years = 7,
  }

  export enum TimescaleInteractionModes {
    None = 0,
    ScrollingByButtons = 1,
    Rescaling = 2,
    Default = 3,
  }

  export enum TimescaleNavigationMode {
    Latest = 0,
    LegacyVersion1 = 1,
    Version2 = 2,
  }

  export enum TreeVisualizationMode {
    ColoredIndentation = 0,
    TreeViewLines = 1,
  }

  export enum UpdateModes {
    Default = 0,
    UpdateOnly = 0,
    ImplicitAddObjects = 1,
    DifferentialValues = 2,
  }

  export enum VerticalAlignment {
    FirstLineOnBaseline = 0,
    AllLinesCenteredAroundBaseline = 1,
  }

  export enum VerticalScrollPosition {
    Top = 1,
    Bottom = 2,
  }

  export enum VerticallyScrollableViewArea {
    Top = -1,
    Main = 0,
    EntitiesTable = 2,
  }

  export enum ViewArea {
    Top = -1,
    Main = 0,
    Default = 0,
  }

  export enum ViewType {
    Activities = 0,
    Resources = 1,
    Loads = 2,
    SkilledResources = 3,
  }

  export enum ViewTypesForDateLines {
    None = 0,
    ActivitiesView = 1,
    ResourcesView = 2,
    LoadsView = 4,
    SkilledResourcesView = 8,
    AllViews = 15,
  }

  export enum VisualSubtype {
    ActivityDueDateSymbol = 1,
    ActivityReleaseDateSymbol = 2,
    ActivityBaselineBar = 20,
    ActivityBaselineDueDateSymbol = 21,
    ActivityBaselineReleaseDateSymbol = 22,
    TopOutsideText = 31,
    BottomOutsideText = 32,
    EarliestStartConstraint = 101,
    EarliestEndConstraint = 102,
    LatestStartConstraint = 103,
    LatestEndConstraint = 104,
    MustStartOnConstraint = 105,
    MustEndOnConstraint = 106,
  }

  export enum VisualType {
    Background = -1,
    Bar = 0,
    Row = 1,
    Curve = 2,
    Link = 3,
    PeriodHighlighter = 4,
    DateLine = 5,
    Timescale = 6,
  }

  export enum WarningCode {
    Miscellaneous = "W0",
    EmptyIDAtIndex = "W1000",
    UnknownIDAtIndex = "W1001",
    ExistingIDAtIndex = "W1002",
    DuplicateIDAtIndex = "W1003",
    EmptyArrayOnAddUpdateRemove = "W1004",
    CyclicByParentID = "W1010",
    ReferenceIdentical = "W1020",
    UnknownID = "W1021",
    ObjectNotVisibleInView = "W1022",
    UnknownOptionName = "W1100",
    RequiredOptionUnset = "W1101",
    EventualOverwriteOnDIVElement = "W1102",
    MissingCallToRenderMethod = "W1103",
    ParameterValueIncorrect = "W1104",
    OptionValueIncorrect = "W1105",
    RelatedIDUnknown = "W2000",
    SymbolURLInvalid = "W2001",
    HTMLCanvasFailedOnSaveAsPDF = "W3000",
  }

  export enum WorldViewPosition {
    Left = 1,
    Right = 2,
    Top = 3,
    Bottom = 4,
  }
  //#endregion Enums

  //#region Widget class
  export class VSWidget {
    constructor(element: HTMLElement, options?: VSWidgetOptions);

    option(name: string): any;
    option(name: string, value: any): this;
    option(options: VSWidgetOptions): this;

    destroy(): void;

    render(): void;

    about(): void;

    // Data manipulation methods
    addActivities<ActivityT extends Activity>(activities: ActivityT[]): void;
    updateActivities<ActivityT extends Activity>(
      activities: ActivityT[],
      updateMode?: UpdateModes
    ): void;
    removeActivities<ActivityT extends Activity>(activitiesOrIDs: ActivityT[] | string[]): void;

    addAllocations<AllocationT extends Allocation>(allocations: AllocationT[]): void;
    updateAllocations<AllocationT extends Allocation>(
      allocations: AllocationT[],
      updateMode?: UpdateModes
    ): void;
    removeAllocations<AllocationT extends Allocation>(allocationsOrIDs: AllocationT[] | string[]): void;

    addCalendars<CalendarT extends Calendar>(calendars: CalendarT[]): void;
    updateCalendars<CalendarT extends Calendar>(
      calendars: CalendarT[],
      updateMode?: UpdateModes
    ): void;
    removeCalendars<CalendarT extends Calendar>(calendarsOrIDs: CalendarT[] | string[]): void;

    addCurves<CurveT extends Curve>(curves: CurveT[]): void;
    updateCurves<CurveT extends Curve>(
      curves: CurveT[],
      updateMode?: UpdateModes
    ): void;
    removeCurves<CurveT extends Curve>(curvesOrIDs: CurveT[] | string[]): void;

    addDateLines<DateLineT extends DateLine>(dateLines: DateLineT[]): void;
    updateDateLines<DateLineT extends DateLine>(
      dateLines: DateLineT[],
      updateMode?: UpdateModes
    ): void;
    removeDateLines<DateLineT extends DateLine>(dateLinesOrIDs: DateLineT[] | string[]): void;

    addEntities<EntityT extends Entity>(entities: EntityT[]): void;
    updateEntities<EntityT extends Entity>(
      entities: EntityT[],
      updateMode?: UpdateModes
    ): void;
    removeEntities<EntityT extends Entity>(entitiesOrIDs: EntityT[] | string[]): void;

    addHierarchySupplementaryDefinitions<HierarchySupplementaryDefinitionT extends HierarchySupplementaryDefinition>(definitions: HierarchySupplementaryDefinitionT[]): void;
    updateHierarchySupplementaryDefinitions<HierarchySupplementaryDefinitionT extends HierarchySupplementaryDefinition>(
      definitions: HierarchySupplementaryDefinitionT[],
      updateMode?: UpdateModes
    ): void;
    removeHierarchySupplementaryDefinitions<HierarchySupplementaryDefinitionT extends HierarchySupplementaryDefinition>(definitionsOrIDs: HierarchySupplementaryDefinitionT[] | string[]): void;

    addLinks<LinkT extends Link>(links: LinkT[]): void;
    updateLinks<LinkT extends Link>(
      links: LinkT[],
      updateMode?: UpdateModes
    ): void;
    removeLinks<LinkT extends Link>(linksOrIDs: LinkT[] | string[]): void;

    addPeriodHighlighters<PeriodHighlighterT extends PeriodHighlighter>(periodHighlighters: PeriodHighlighterT[]): void;
    updatePeriodHighlighters<PeriodHighlighterT extends PeriodHighlighter>(
      periodHighlighters: PeriodHighlighterT[],
      updateMode?: UpdateModes
    ): void;
    removePeriodHighlighters<PeriodHighlighterT extends PeriodHighlighter>(periodHighlightersOrIDs: PeriodHighlighterT[] | string[]): void;

    addResources<ResourceT extends Resource>(resources: ResourceT[]): void;
    updateResources<ResourceT extends Resource>(
      resources: ResourceT[],
      updateMode?: UpdateModes
    ): void;
    removeResources<ResourceT extends Resource>(resourcesOrIDs: ResourceT[] | string[]): void;

    addSkills<SkillT extends Skill>(skills: SkillT[]): void;
    updateSkills<SkillT extends Skill>(
      skills: SkillT[],
      updateMode?: UpdateModes
    ): void;
    removeSkills<SkillT extends Skill>(skillsOrIDs: SkillT[] | string[]): void;

    addSymbols<SymbolT extends Symbol>(symbols: SymbolT[]): void;
    updateSymbols<SymbolT extends Symbol>(
      symbols: SymbolT[],
      updateMode?: UpdateModes
    ): void;
    removeSymbols<SymbolT extends Symbol>(symbolsOrIDs: SymbolT[] | string[]): void;

    addTableRowDefinitions<TableRowDefinitionT extends TableRowDefinition>(definitions: TableRowDefinitionT[]): void;
    updateTableRowDefinitions<TableRowDefinitionT extends TableRowDefinition>(
      definitions: TableRowDefinitionT[],
      updateMode?: UpdateModes
    ): void;
    removeTableRowDefinitions<TableRowDefinitionT extends TableRowDefinition>(definitionsOrIDs: TableRowDefinitionT[] | string[]): void;

    addTooltipTemplates<TooltipTemplateT extends TooltipTemplate>(templates: TooltipTemplateT[]): void;
    updateTooltipTemplates<TooltipTemplateT extends TooltipTemplate>(
      templates: TooltipTemplateT[],
      updateMode?: UpdateModes
    ): void;
    removeTooltipTemplates<TooltipTemplateT extends TooltipTemplate>(templatesOrIDs: TooltipTemplateT[] | string[]): void;

    removeAll(objectType?: ObjectTypeForRemoveAll): void;

    selectObjects<VSWidgetObjectT extends VSWidgetObject>(
      objectType: ObjectType,
      objectsOrIDs: VSWidgetObjectT[] | string[],
      visualType?: VisualType
    ): void;
    getSelectedObjects<VSWidgetObjectT extends VSWidgetObject>(): {
      objectType: ObjectType;
      objects: VSWidgetObjectT[];
    };

    highlightObjects<VSWidgetObjectT extends VSWidgetObject>(
      objectType: ObjectType,
      objectsOrIDs: VSWidgetObjectT[] | string[],
      visualType?: VisualType
    ): void;

    addWorkingTime(
      calendarID: string | null | undefined,
      start: Date | string,
      workingTime: number
    ): Date | void;
    calculateWorkingTime(
      calendarID: string | null | undefined,
      start: Date | string,
      end: Date | string
    ): number | void;

    scrollToDate(
      date: Date | string,
      offset?: string,
    ): void;
    scrollToObject(
      objectType: ObjectType,
      id: string,
      targetPositionInView?: TargetPositions,
      highlightingEnabled?: boolean
    ): void;
    scrollViewAreaHorizontally(
      viewArea: HorizontallyScrollableViewArea,
      position: HorizontalScrollPosition
    ): void;
    scrollViewAreaVertically(
      viewArea: VerticallyScrollableViewArea,
      position: VerticalScrollPosition
    ): void;

    fitTimeAreaIntoView(
      start?: Date | string,
      end?: Date | string
    ): void;
    setTimeResolutionForView(
      timeUnit: TimeUnit | string,
      timeUnitCount?: number,
      startDate?: Date | string
    ): void;

    saveAsPDF(
      fileName: string,
      options?: SaveAsPDFOptions
    ): Promise<void>;
    cancelSaveAsPDF(): void;

    determineObjectByPageCoordinates(
      pageX: number,
      pageY: number
    ): DeterminedObjectArgs | void;

    processOnDrop(callbackArgs: OnDropCallbackArgs): Object | void;

    setCollapseStatesForRows(
      viewType: ViewType,
      newCollapseState: CollapseState | number,
      fromLevel?: number,
      toLevel?: number,
      collapseStateTargets?: CollapseStateTargets
    ): void;
    setCollapseStatesForEntityRows(
      viewType: ViewType,
      newCollapseState: CollapseState,
      fromLevel?: number,
      toLevel?: number
    ): void;

    setResourcePropertiesForActivities<ResourcePropertiesForActivitiesT extends ResourcePropertiesForActivities>(resourceProperties: ResourcePropertiesForActivitiesT): void;
    setResourcePropertiesForSkills<ResourcePropertiesForSkillsT extends ResourcePropertiesForSkills>(resourceProperties: ResourcePropertiesForSkillsT): void;

    getViewParameters(): VSWidgetViewParameters;
    /*!SE*/
    /*!SE*/serializeCollapseStates(
    /*!SE*/  viewType: ViewType,
    /*!SE*/  serializeCollapseStates: string
    /*!SE*/): void;
    /*!SE*/deserializeCollapseStates(viewType: ViewType): string;
    /*!SE*/
    /*!SE*/getAllocationsForActivity<ActivityT extends Activity>(activityOrID: ActivityT | string): Allocation[];
    /*!SE*/getAllocationsForResource<ResourceT extends Resource>(resourceOrID: ResourceT | string): Allocation[];
    /*!SE*/
    /*!SE*/appendTagToLog(tag: string): void;
  }
  //#endregion Widget class

  //#region Object Type interfaces
  export interface VSWidgetObject {
    ID: string;
  }

  // Object types
  export interface Activity<ActivityEntryT extends ActivityEntry = ActivityEntry> extends VSWidgetObject {
    AllocationRowsCollapseState?: VSWidgetEnumProperty<CollapseState>;
    AllocationRowsCollapsible?: VSWidgetProperty<boolean>;
    AllowedBarDragModes?: VSWidgetEnumProperty<BarDragModes>;
    AllowedRowDragModes?: VSWidgetEnumProperty<RowDragModes>;
    AttachedDateLineIDs?: VSWidgetProperty<string[]>;
    /*!SE*/BackgroundColor?: VSWidgetProperty<string>;
    /*!SE*/BackgroundNonworkingTimeColor?: VSWidgetProperty<string>;
    BarBottomOutsideFontFamily?: VSWidgetProperty<string>;
    BarBottomOutsideFontSize?: VSWidgetProperty<string>;
    BarBottomOutsideFontStyle?: VSWidgetProperty<string>;
    BarBottomOutsideFontWeight?: VSWidgetProperty<string>;
    BarBottomOutsideText?: VSWidgetProperty<string>;
    BarBottomOutsideTextColor?: VSWidgetProperty<string>;
    BarBottomOutsideTooltipTemplateID?: VSWidgetProperty<string>;
    BarDesign?: VSWidgetEnumProperty<BarDesigns>;
    BarFontFamily?: VSWidgetProperty<string>;
    BarFontSize?: VSWidgetProperty<string>;
    BarFontStyle?: VSWidgetProperty<string>;
    BarFontWeight?: VSWidgetProperty<string>;
    BarHeight?: VSWidgetProperty<number>;
    BarOpacity?: VSWidgetProperty<number>;
    BarPatternColor?: VSWidgetProperty<string>;
    BarPatternType?: VSWidgetEnumProperty<PatternType>;
    BarSelectable?: VSWidgetProperty<boolean>;
    BarShape?: VSWidgetEnumProperty<BarShape>;
    BarShapeSymbolID?: VSWidgetProperty<string>;
    BarShapeSymbolWidth?: VSWidgetProperty<number>;
    BarText?: VSWidgetProperty<string>;
    BarTextColor?: VSWidgetProperty<string>;
    BarTextFormat?: VSWidgetProperty<string>;
    BarTextPrefixSymbolHeight?: VSWidgetProperty<number>;
    BarTextPrefixSymbolID?: VSWidgetProperty<string>;
    BarTextPrefixSymbolWidth?: VSWidgetProperty<number>;
    BarTextWrapMode?: VSWidgetEnumProperty<TextWrapMode>;
    BarTopOffset?: VSWidgetProperty<number>;
    BarTopOutsideFontFamily?: VSWidgetProperty<string>;
    BarTopOutsideFontSize?: VSWidgetProperty<string>;
    BarTopOutsideFontStyle?: VSWidgetProperty<string>;
    BarTopOutsideFontWeight?: VSWidgetProperty<string>;
    BarTopOutsideText?: VSWidgetProperty<string>;
    BarTopOutsideTextColor?: VSWidgetProperty<string>;
    BarTopOutsideTooltipTemplateID?: VSWidgetProperty<string>;
    BarTooltipTemplateID?: VSWidgetProperty<string>;
    BaselineBorderColor?: VSWidgetProperty<string>;
    BaselineColor?: VSWidgetProperty<string>;
    BaselineDueDate?: VSWidgetProperty<Date | string>;
    BaselineDueDateColor?: VSWidgetProperty<string>;
    BaselineDueDateSymbolID?: VSWidgetProperty<string>;
    BaselineDueDateTooltipTemplateID?: VSWidgetProperty<string>;
    BaselineEnd?: VSWidgetProperty<Date | string>;
    BaselineNonworkingTimeColor?: VSWidgetProperty<string>;
    BaselineReleaseDate?: VSWidgetProperty<Date | string>;
    BaselineReleaseDateColor?: VSWidgetProperty<string>;
    BaselineReleaseDateSymbolID?: VSWidgetProperty<string>;
    BaselineReleaseDateTooltipTemplateID?: VSWidgetProperty<string>;
    BaselineStart?: VSWidgetProperty<Date | string>;
    BaselineTooltipTemplateID?: VSWidgetProperty<string>;
    BorderColor?: VSWidgetProperty<string>;
    BorderDashArray?: VSWidgetProperty<string>;
    BorderWidth?: VSWidgetProperty<number>;
    CalendarGridColor?: VSWidgetProperty<string>;
    CalendarGridID?: VSWidgetProperty<string>;
    CalendarID?: VSWidgetProperty<string>;
    CollapsedRowDesign?: VSWidgetEnumProperty<RowDesigns>;
    CollapseState?: VSWidgetEnumProperty<CollapseState>;
    Color?: VSWidgetProperty<string>;
    CurveCollapseState?: VSWidgetEnumProperty<CollapseState>;
    DueDate?: VSWidgetProperty<Date | string>;
    DueDateAllowedDragModes?: VSWidgetEnumProperty<BarDragModes>;
    DueDateColor?: VSWidgetProperty<string>;
    DueDateSymbolHeight?: VSWidgetProperty<number>;
    DueDateSymbolID?: VSWidgetProperty<string>;
    DueDateSymbolWidth?: VSWidgetProperty<number>;
    DueDateTooltipTemplateID?: VSWidgetProperty<string>;
    EarliestDragStart?: VSWidgetProperty<Date | string>;
    EarliestEnd?: VSWidgetProperty<Date | string>;
    EarliestEndColor?: VSWidgetProperty<string>;
    EarliestEndTooltipTemplateID?: VSWidgetProperty<string>;
    EarliestStart?: VSWidgetProperty<Date | string>;
    EarliestStartColor?: VSWidgetProperty<string>;
    EarliestStartTooltipTemplateID?: VSWidgetProperty<string>;
    Editable?: VSWidgetProperty<boolean>;
    End?: VSWidgetProperty<Date | string>;
    Entries?: VSWidgetProperty<ActivityEntryT[]>;
    ExpandedRowDesign?: VSWidgetEnumProperty<RowDesigns>;
    HasAllocationRows?: VSWidgetProperty<boolean>;
    HasChildren?: VSWidgetProperty<boolean>;
    LatestDragEnd?: VSWidgetProperty<Date | string>;
    LatestEnd?: VSWidgetProperty<Date | string>;
    LatestEndColor?: VSWidgetProperty<string>;
    LatestEndTooltipTemplateID?: VSWidgetProperty<string>;
    LatestStart?: VSWidgetProperty<Date | string>;
    LatestStartColor?: VSWidgetProperty<string>;
    LatestStartTooltipTemplateID?: VSWidgetProperty<string>;
    LeftBarSymbolHeight?: VSWidgetProperty<number>;
    LeftBarSymbolID?: VSWidgetProperty<string>;
    LeftBarSymbolWidth?: VSWidgetProperty<number>;
    LinkSourceDate?: VSWidgetProperty<Date | string>;
    LinkTargetDate?: VSWidgetProperty<Date | string>;
    /*!SE*/MaximumRowHeight?: VSWidgetProperty<number>;
    /*!SE*/MaximumSubRowHeightInTimeArea?: VSWidgetProperty<number>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    MustEndOn?: VSWidgetProperty<Date | string>;
    MustEndOnColor?: VSWidgetProperty<string>;
    MustEndOnTooltipTemplateID?: VSWidgetProperty<string>;
    MustStartOn?: VSWidgetProperty<Date | string>;
    MustStartOnColor?: VSWidgetProperty<string>;
    MustStartOnTooltipTemplateID?: VSWidgetProperty<string>;
    NonworkingTimeColor?: VSWidgetProperty<string>;
    ParentID?: VSWidgetProperty<string>;
    PeriodHighlighterID?: VSWidgetProperty<string>;
    PredictedEnd?: VSWidgetProperty<Date | string>;
    PredictedEndColor?: VSWidgetProperty<string>;
    Progress?: VSWidgetProperty<number>;
    ProgressBackgroundColor?: VSWidgetProperty<string>;
    ProgressColor?: VSWidgetProperty<string>;
    ProgressNonworkingTimeColor?: VSWidgetProperty<string>;
    ReleaseDate?: VSWidgetProperty<Date | string>;
    ReleaseDateAllowedDragModes?: VSWidgetEnumProperty<BarDragModes>;
    ReleaseDateColor?: VSWidgetProperty<string>;
    ReleaseDateSymbolHeight?: VSWidgetProperty<number>;
    ReleaseDateSymbolID?: VSWidgetProperty<string>;
    ReleaseDateSymbolWidth?: VSWidgetProperty<number>;
    ReleaseDateTooltipTemplateID?: VSWidgetProperty<string>;
    RightBarSymbolHeight?: VSWidgetProperty<number>;
    RightBarSymbolID?: VSWidgetProperty<string>;
    RightBarSymbolWidth?: VSWidgetProperty<number>;
    RowCollapsible?: VSWidgetProperty<boolean>;
    RowSelectable?: VSWidgetProperty<boolean>;
    RowSymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    RowTooltipTemplateID?: VSWidgetProperty<string>;
    SnapTargetsForEnd?: VSWidgetEnumProperty<SnapTargets>;
    SnapTargetsForStart?: VSWidgetEnumProperty<SnapTargets>;
    SortCode?: VSWidgetProperty<string | number>;
    Start?: VSWidgetProperty<Date | string>;
    Status1Color?: VSWidgetProperty<string>;
    Status1Visible?: VSWidgetProperty<boolean>;
    Status2Color?: VSWidgetProperty<string>;
    Status2Visible?: VSWidgetProperty<boolean>;
    Status3Color?: VSWidgetProperty<string>;
    Status3Visible?: VSWidgetProperty<boolean>;
    Status4Color?: VSWidgetProperty<string>;
    Status4Visible?: VSWidgetProperty<boolean>;
    StatusFrameColor?: VSWidgetProperty<string>;
    StatusFrameVisible?: VSWidgetProperty<boolean>;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableText?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
    TopLeftBarSymbolHeight?: VSWidgetProperty<number>;
    TopLeftBarSymbolID?: VSWidgetProperty<string>;
    TopLeftBarSymbolWidth?: VSWidgetProperty<number>;
    TopLeftBarSymbolYOffset?: VSWidgetProperty<number>;
    TopRightBarSymbolHeight?: VSWidgetProperty<number>;
    TopRightBarSymbolID?: VSWidgetProperty<string>;
    TopRightBarSymbolWidth?: VSWidgetProperty<number>;
    TopRightBarSymbolYOffset?: VSWidgetProperty<number>;
    ViewArea?: VSWidgetEnumProperty<ViewArea>;
  }

  export interface ActivityEntry {
    Color?: VSWidgetProperty<string>;
    End?: VSWidgetProperty<Date | string>;
    FontFamily?: VSWidgetProperty<string>;
    FontSize?: VSWidgetProperty<string>;
    FontStyle?: VSWidgetProperty<string>;
    FontWeight?: VSWidgetProperty<string>;
    Height?: VSWidgetProperty<number>;
    NonworkingTimeColor?: VSWidgetProperty<string>;
    PatternColor?: VSWidgetProperty<string>;
    PatternType?: VSWidgetEnumProperty<PatternType>;
    RelativeTopOffset?: VSWidgetProperty<number>;
    Start?: VSWidgetProperty<Date | string>;
    Text?: VSWidgetProperty<string>;
    TextColor?: VSWidgetProperty<string>;
    TextWrapMode?: VSWidgetEnumProperty<TextWrapMode>;
  }

  export interface Allocation<AllocationEntryT extends AllocationEntry = AllocationEntry> extends VSWidgetObject {
    ActivityID?: VSWidgetProperty<string>;
    AllowedBarDragModes?: VSWidgetEnumProperty<BarDragModes>;
    AllowedBarDragModesInActivitiesView?: VSWidgetEnumProperty<BarDragModes>;
    AllowedRowDragModes?: VSWidgetEnumProperty<RowDragModes>;
    AllowedRowDragModesInActivitiesView?: VSWidgetEnumProperty<RowDragModes>;
    AttachedDateLineIDs?: VSWidgetProperty<string[]>;
    /*!SE*/BackgroundColor?: VSWidgetProperty<string>;
    /*!SE*/BackgroundNonworkingTimeColor?: VSWidgetProperty<string>;
    BarBottomOutsideFontFamily?: VSWidgetProperty<string>;
    BarBottomOutsideFontSize?: VSWidgetProperty<string>;
    BarBottomOutsideFontStyle?: VSWidgetProperty<string>;
    BarBottomOutsideFontWeight?: VSWidgetProperty<string>;
    BarBottomOutsideText?: VSWidgetProperty<string>;
    BarBottomOutsideTextColor?: VSWidgetProperty<string>;
    BarBottomOutsideTooltipTemplateID?: VSWidgetProperty<string>;
    BarDesign?: VSWidgetEnumProperty<BarDesigns>;
    BarFontFamily?: VSWidgetProperty<string>;
    BarFontSize?: VSWidgetProperty<string>;
    BarFontStyle?: VSWidgetProperty<string>;
    BarFontWeight?: VSWidgetProperty<string>;
    BarHeight?: VSWidgetProperty<number>;
    BarOpacity?: VSWidgetProperty<number>;
    BarPatternColor?: VSWidgetProperty<string>;
    BarPatternType?: VSWidgetEnumProperty<PatternType>;
    BarSelectable?: VSWidgetProperty<boolean>;
    BarShape?: VSWidgetEnumProperty<BarShape>;
    BarShapeSymbolID?: VSWidgetProperty<string>;
    BarShapeSymbolWidth?: VSWidgetProperty<number>;
    BarShownUnstackedInBackground?: VSWidgetProperty<boolean>;
    BarText?: VSWidgetProperty<string>;
    BarTextColor?: VSWidgetProperty<string>;
    BarTextFormat?: VSWidgetProperty<string>;
    BarTextPrefixSymbolHeight?: VSWidgetProperty<number>;
    BarTextPrefixSymbolID?: VSWidgetProperty<string>;
    BarTextPrefixSymbolWidth?: VSWidgetProperty<number>;
    BarTextWrapMode?: VSWidgetEnumProperty<TextWrapMode>;
    BarTooltipTemplateID?: VSWidgetProperty<string>;
    BarTopOutsideFontFamily?: VSWidgetProperty<string>;
    BarTopOutsideFontSize?: VSWidgetProperty<string>;
    BarTopOutsideFontStyle?: VSWidgetProperty<string>;
    BarTopOutsideFontWeight?: VSWidgetProperty<string>;
    BarTopOutsideText?: VSWidgetProperty<string>;
    BarTopOutsideTextColor?: VSWidgetProperty<string>;
    BarTopOutsideTooltipTemplateID?: VSWidgetProperty<string>;
    BarTopOffset?: VSWidgetProperty<number>;
    BorderColor?: VSWidgetProperty<string>;
    BorderDashArray?: VSWidgetProperty<string>;
    BorderWidth?: VSWidgetProperty<number>;
    Color?: VSWidgetProperty<string>;
    EarliestDragStart?: VSWidgetProperty<Date | string>;
    EarliestEnd?: VSWidgetProperty<Date | string>;
    EarliestEndColor?: VSWidgetProperty<string>;
    EarliestEndTooltipTemplateID?: VSWidgetProperty<string>;
    EarliestStart?: VSWidgetProperty<Date | string>;
    EarliestStartColor?: VSWidgetProperty<string>;
    EarliestStartTooltipTemplateID?: VSWidgetProperty<string>;
    End?: VSWidgetProperty<Date | string>;
    EndIsSnapTarget?: VSWidgetProperty<boolean>;
    Entries?: VSWidgetProperty<AllocationEntryT[]>;
    LatestDragEnd?: VSWidgetProperty<Date | string>;
    LatestEnd?: VSWidgetProperty<Date | string>;
    LatestEndColor?: VSWidgetProperty<string>;
    LatestEndTooltipTemplateID?: VSWidgetProperty<string>;
    LatestStart?: VSWidgetProperty<Date | string>;
    LatestStartColor?: VSWidgetProperty<string>;
    LatestStartTooltipTemplateID?: VSWidgetProperty<string>;
    LeftBarSymbolHeight?: VSWidgetProperty<number>;
    LeftBarSymbolID?: VSWidgetProperty<string>;
    LeftBarSymbolWidth?: VSWidgetProperty<number>;
    LinkSourceDate?: VSWidgetProperty<Date | string>;
    LinkTargetDate?: VSWidgetProperty<Date | string>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    MustEndOn?: VSWidgetProperty<Date | string>;
    MustEndOnColor?: VSWidgetProperty<string>;
    MustEndOnTooltipTemplateID?: VSWidgetProperty<string>;
    MustStartOn?: VSWidgetProperty<Date | string>;
    MustStartOnColor?: VSWidgetProperty<string>;
    MustStartOnTooltipTemplateID?: VSWidgetProperty<string>;
    NonworkingTimeColor?: VSWidgetProperty<string>;
    PredictedEnd?: VSWidgetProperty<Date | string>;
    PredictedEndColor?: VSWidgetProperty<string>;
    Progress?: VSWidgetProperty<number>;
    ProgressBackgroundColor?: VSWidgetProperty<string>;
    ProgressColor?: VSWidgetProperty<string>;
    ProgressNonworkingTimeColor?: VSWidgetProperty<string>;
    ResourceID?: VSWidgetProperty<string>;
    RightBarSymbolHeight?: VSWidgetProperty<number>;
    RightBarSymbolID?: VSWidgetProperty<string>;
    RightBarSymbolWidth?: VSWidgetProperty<number>;
    RowDesign?: VSWidgetEnumProperty<RowDesigns>;
    RowSelectable?: VSWidgetProperty<boolean>;
    RowSymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    RowTooltipTemplateID?: VSWidgetProperty<string>;
    SkilledBarTooltipTemplateID?: VSWidgetProperty<string>;
    SkilledRowTooltipTemplateID?: VSWidgetProperty<string>;
    SkillID?: VSWidgetProperty<string>;
    SnapTargetsForEnd?: VSWidgetEnumProperty<SnapTargets>;
    SnapTargetsForStart?: VSWidgetEnumProperty<SnapTargets>;
    SortCode?: VSWidgetProperty<string | number>;
    Start?: VSWidgetProperty<Date | string>;
    StartIsSnapTarget?: VSWidgetProperty<boolean>;
    Status1Color?: VSWidgetProperty<string>;
    Status1Visible?: VSWidgetProperty<boolean>;
    Status2Color?: VSWidgetProperty<string>;
    Status2Visible?: VSWidgetProperty<boolean>;
    Status3Color?: VSWidgetProperty<string>;
    Status3Visible?: VSWidgetProperty<boolean>;
    Status4Color?: VSWidgetProperty<string>;
    Status4Visible?: VSWidgetProperty<boolean>;
    StatusFrameColor?: VSWidgetProperty<string>;
    StatusFrameVisible?: VSWidgetProperty<boolean>;
    SuitableActivityIDs?: VSWidgetProperty<string[]> | null | undefined;
    SuitableResourceIDs?: VSWidgetProperty<string[]> | null | undefined;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableText?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
    TopLeftBarSymbolHeight?: VSWidgetProperty<number>;
    TopLeftBarSymbolID?: VSWidgetProperty<string>;
    TopLeftBarSymbolWidth?: VSWidgetProperty<number>;
    TopLeftBarSymbolYOffset?: VSWidgetProperty<number>;
    TopRightBarSymbolHeight?: VSWidgetProperty<number>;
    TopRightBarSymbolID?: VSWidgetProperty<string>;
    TopRightBarSymbolWidth?: VSWidgetProperty<number>;
    TopRightBarSymbolYOffset?: VSWidgetProperty<number>;
  }

  export interface AllocationEntry {
    Color?: VSWidgetProperty<string>;
    End?: VSWidgetProperty<Date | string>;
    FontFamily?: VSWidgetProperty<string>;
    FontSize?: VSWidgetProperty<string>;
    FontStyle?: VSWidgetProperty<string>;
    FontWeight?: VSWidgetProperty<string>;
    Height?: VSWidgetProperty<number>;
    NonworkingTimeColor?: VSWidgetProperty<string>;
    PatternColor?: VSWidgetProperty<string>;
    PatternType?: VSWidgetEnumProperty<PatternType>;
    RelativeTopOffset?: VSWidgetProperty<number>;
    Start?: VSWidgetProperty<Date | string>;
    Text?: VSWidgetProperty<string>;
    TextColor?: VSWidgetProperty<string>;
    TextWrapMode?: VSWidgetEnumProperty<TextWrapMode>;
  }

  export interface Calendar<CalendarEntryT extends CalendarEntry = CalendarEntry> extends VSWidgetObject {
    Entries?: VSWidgetProperty<CalendarEntryT[]> | null | undefined;
  }

  export interface CalendarEntry {
    End?: VSWidgetProperty<Date | string>;
    Start?: VSWidgetProperty<Date | string>;
    TimeType?: VSWidgetEnumProperty<TimeType>;
  }

  export interface Curve<CurvePointEntryT extends CurvePointEntry = CurvePointEntry> extends VSWidgetObject {
    CurveIDs?: VSWidgetProperty<string[]>;
    CurvePointEntries?: VSWidgetProperty<CurvePointEntryT[]>;
    FillColor?: VSWidgetProperty<string>;
    InterpolationType?: VSWidgetEnumProperty<CurveInterpolationType>;
    OverloadColor?: VSWidgetProperty<string>;
    ScaleMaximumValue?: VSWidgetProperty<number>;
    ScaleMinimumValue?: VSWidgetProperty<number>;
    StrokeColor?: VSWidgetProperty<string>;
    StrokeDashArray?: VSWidgetProperty<string>;
    Type?: VSWidgetEnumProperty<CurveType>;
  }

  export interface CurvePointEntry {
    PointInTime: VSWidgetProperty<Date | string>;
    Value: VSWidgetProperty<number>;
  }

  export interface DateLine extends VSWidgetObject {
    AppearanceType?: VSWidgetEnumProperty<DateLineAppearanceType>;
    Caption?: VSWidgetProperty<string>;
    CaptionColor?: VSWidgetProperty<string>;
    CaptionColorSource?: VSWidgetProperty<string>;
    CaptionFontFamily?: VSWidgetProperty<string>;
    CaptionFontSize?: VSWidgetProperty<string>;
    CaptionFontStyle?: VSWidgetProperty<string>;
    CaptionFontWeight?: VSWidgetProperty<string>;
    CaptionFormat?: VSWidgetProperty<string>;
    CaptionOrientation?: VSWidgetProperty<string>;
    CaptionPosition?: VSWidgetProperty<string>;
    Color?: VSWidgetProperty<string>;
    ColorSource?: VSWidgetProperty<string>;
    DashArray?: VSWidgetProperty<string>;
    DashArraySource?: VSWidgetProperty<string>;
    Draggable?: VSWidgetProperty<boolean>;
    InFrontOfBars?: VSWidgetProperty<boolean>;
    IsVisibleInViewTypes?: VSWidgetEnumProperty<ViewTypesForDateLines>;
    PointInTime?: VSWidgetProperty<Date | string>;
    PointInTimeSource?: VSWidgetProperty<string>;
    SymbolHeight?: VSWidgetProperty<number>;
    SymbolID?: VSWidgetProperty<string>;
    SymbolWidth?: VSWidgetProperty<number>;
    Width?: VSWidgetProperty<number>;
    WidthSource?: VSWidgetProperty<string>;
  }

  export interface Entity extends VSWidgetObject {
    AllowedRowDragModes?: VSWidgetEnumProperty<RowDragModes>;
    CollapseState?: VSWidgetEnumProperty<CollapseState>;
    Duration?: VSWidgetProperty<number>;
    HasChildren?: VSWidgetProperty<boolean>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    ParentID?: VSWidgetProperty<string>;
    RowCollapsible?: VSWidgetProperty<boolean>;
    RowSelectable?: VSWidgetProperty<boolean>;
    RowSymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    RowTooltipTemplateID?: VSWidgetProperty<string>;
    SortCode?: VSWidgetProperty<string | number>;
    SuitableActivityIDs?: VSWidgetProperty<string[]>;
    SuitableResourceIDs?: VSWidgetProperty<string[]>;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableText?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
  }

  export interface GroupingLevelDefinition {
    DefaultGroupingCode?: VSWidgetProperty<string>;
    GroupingCodeSource?: VSWidgetProperty<string>;
    GroupingCodeToTextMap?: VSWidgetProperty<{ [key: string]: string }>;
    InitiallyCollapsed?: VSWidgetProperty<boolean>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
    TableTextFormat?: VSWidgetProperty<string>;
  }

  export interface HierarchyLevelSupplementaryDefinition<GroupingLevelDefinitionT extends GroupingLevelDefinition = GroupingLevelDefinition> {
    GroupingLevelDefinitions?: VSWidgetProperty<GroupingLevelDefinitionT[]>;
    InitiallyCollapsed?: VSWidgetProperty<boolean>;
    PredefinedGroups?: VSWidgetProperty<string[]>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
  }

  export interface HierarchySupplementaryDefinition<GroupingLevelDefinitionT extends GroupingLevelDefinition = GroupingLevelDefinition, HierarchyLevelSupplementaryDefinitionT extends HierarchyLevelSupplementaryDefinition<GroupingLevelDefinitionT> = HierarchyLevelSupplementaryDefinition<GroupingLevelDefinitionT>> extends VSWidgetObject {
    HierarchyLevelSupplementaryDefinitions?: VSWidgetProperty<HierarchyLevelSupplementaryDefinitionT[]>;
  }

  export interface Link<LinkEntryT extends LinkEntry = LinkEntry> extends VSWidgetObject {
    Color?: VSWidgetProperty<string>;
    DashArray?: VSWidgetProperty<string>;
    Entries?: VSWidgetProperty<LinkEntryT[]>;
    SourceAllocationID?: VSWidgetProperty<string>;
    SourceActivityID?: VSWidgetProperty<string>;
    TargetAllocationID?: VSWidgetProperty<string>;
    TargetActivityID?: VSWidgetProperty<string>;
    RelationType?: VSWidgetEnumProperty<RelationType>;
    RoutingType?: VSWidgetEnumProperty<LinkRoutingType>;
    Selectable?: VSWidgetProperty<boolean>;
    TargetMarker?: VSWidgetEnumProperty<LinkMarker>;
    TooltipTemplateID?: VSWidgetProperty<string>;
    Width?: VSWidgetProperty<number>;
  }

  export interface LinkEntry {
    Color?: VSWidgetProperty<string>;
    Duration?: VSWidgetProperty<number>;
  }

  export interface PeriodHighlighter<PeriodHighlighterEntryT extends PeriodHighlighterEntry = PeriodHighlighterEntry> extends VSWidgetObject {
    Entries?: VSWidgetProperty<PeriodHighlighterEntryT[]>;
  }

  export interface PeriodHighlighterEntry {
    Caption?: VSWidgetProperty<string>;
    CaptionColor?: VSWidgetProperty<string>;
    CaptionFontFamily?: VSWidgetProperty<string>;
    CaptionFontSize?: VSWidgetProperty<string>;
    CaptionFontStyle?: VSWidgetProperty<string>;
    CaptionFontWeight?: VSWidgetProperty<string>;
    Color?: VSWidgetProperty<string>;
    End?: VSWidgetProperty<Date | string>;
    Start?: VSWidgetProperty<Date | string>;
    TooltipTemplateID?: VSWidgetProperty<string>;
  }

  export interface Resource extends VSWidgetObject {
    AllocationRowsCollapseState?: VSWidgetEnumProperty<CollapseState>;
    AllocationRowsCollapseStateInActivitiesView?: VSWidgetEnumProperty<CollapseState>;
    AllocationRowsCollapsible?: VSWidgetProperty<boolean>;
    AllocationRowsCollapsibleInActivitiesView?: VSWidgetProperty<boolean>;
    AllowedRowDragModes?: VSWidgetEnumProperty<RowDragModes>;
    BarsPaneVisible?: VSWidgetProperty<boolean>;
    CalendarGridColor?: VSWidgetProperty<string>;
    CalendarID?: VSWidgetProperty<string>;
    CapacityCurveID?: VSWidgetProperty<string>;
    CollapsedRowDesign?: VSWidgetEnumProperty<RowDesigns>;
    CollapseState?: VSWidgetEnumProperty<CollapseState>;
    CollapseStateInLoadsView?: VSWidgetEnumProperty<CollapseState>;
    CurveCollapseState?: VSWidgetEnumProperty<CollapseState>;
    CurveTooltipTemplateID?: VSWidgetProperty<string>;
    ExpandedRowDesign?: VSWidgetEnumProperty<RowDesigns>;
    HasAllocationRows?: VSWidgetProperty<boolean>;
    HasChildren?: VSWidgetProperty<boolean>;
    HasCurves?: VSWidgetProperty<boolean>;
    InventoryCurveID?: VSWidgetProperty<string>;
    InventoryCurvePaneHeight?: VSWidgetProperty<number>;
    InventoryCurvePaneVisible?: VSWidgetProperty<boolean>;
    LoadCurveID?: VSWidgetProperty<string>;
    LoadCurvePaneHeight?: VSWidgetProperty<number>;
    LoadCurvePaneVisible?: VSWidgetProperty<boolean>;
    /*!SE*/MaximumRowHeight?: VSWidgetProperty<number>;
    /*!SE*/MaximumSubRowHeightInTimeArea?: VSWidgetProperty<number>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    ParentID?: VSWidgetProperty<string>;
    PeriodHighlighterID?: VSWidgetProperty<string>;
    RowCollapsible?: VSWidgetProperty<boolean>;
    RowSelectable?: VSWidgetProperty<boolean>;
    RowSymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    RowTooltipTemplateID?: VSWidgetProperty<string>;
    SkilledRowTooltipTemplateID?: VSWidgetProperty<string>;
    SkillIDs?: VSWidgetProperty<string[]>;
    SortCode?: VSWidgetProperty<string | number>;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableText?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
    ViewArea?: VSWidgetEnumProperty<ViewArea>;
  }

  export interface ResourcePropertiesForActivities extends VSWidgetObject {
    ActivityID: string;
    AllocationRowsCollapseState?: VSWidgetEnumProperty<CollapseState>;
    CurveCollapseState?: VSWidgetEnumProperty<CollapseState>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    SortCode?: VSWidgetProperty<string | number>;
    TableColor?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
  }

  export interface ResourcePropertiesForSkills extends VSWidgetObject {
    AllocationRowsCollapseState?: VSWidgetEnumProperty<CollapseState>;
    CurveCollapseState?: VSWidgetEnumProperty<CollapseState>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    SkillID: string;
    SortCode?: VSWidgetProperty<string | number>;
    TableColor?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
  }

  export interface Skill extends VSWidgetObject {
    AllowedRowDragModes?: VSWidgetEnumProperty<RowDragModes>;
    CollapseState?: VSWidgetEnumProperty<CollapseState>;
    CollapsedRowDesign?: VSWidgetProperty<string>;
    MinimumRowHeight?: VSWidgetProperty<number>;
    RowCollapsible?: VSWidgetProperty<boolean>;
    RowSelectable?: VSWidgetProperty<boolean>;
    RowSymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    RowSymbolIDs?: VSWidgetProperty<string[]>;
    RowTooltipTemplateID?: VSWidgetProperty<string>;
    SortCode?: VSWidgetProperty<string | number>;
    TableColor?: VSWidgetProperty<string>;
    TableColorVisibleInTimeArea?: VSWidgetProperty<boolean>;
    TableFontFamily?: VSWidgetProperty<string>;
    TableFontSize?: VSWidgetProperty<string>;
    TableFontStyle?: VSWidgetProperty<string>;
    TableFontWeight?: VSWidgetProperty<string>;
    TableRowDefinitionID?: VSWidgetProperty<string>;
    TableText?: VSWidgetProperty<string>;
    TableTextColor?: VSWidgetProperty<string>;
    ViewArea?: VSWidgetProperty<string>;
  }

  export interface Symbol extends VSWidgetObject {
    Class?: VSWidgetProperty<string>;
    ClickableInEntitiesTable?: VSWidgetProperty<boolean>;
    ClickableInTable?: VSWidgetProperty<boolean>;
    Color?: VSWidgetProperty<string>;
    InclusionMode?: VSWidgetEnumProperty<SymbolInclusionMode>;
    TooltipTemplateID?: VSWidgetProperty<string>;
    URL?: VSWidgetProperty<string>;
  }

  export interface TableCellDefinition {
    BackgroundColor?: VSWidgetProperty<string>;
    BackgroundColorSource?: VSWidgetProperty<string>;
    FontFamily?: VSWidgetProperty<string>;
    FontSize?: VSWidgetProperty<string>;
    FontStyle?: VSWidgetProperty<string>;
    FontWeight?: VSWidgetProperty<string>;
    HorizontalAlignment?: VSWidgetEnumProperty<HorizontalAlignment>;
    HorizontalTitleAlignment?: VSWidgetEnumProperty<HorizontalAlignment>;
    MaximumWidth?: VSWidgetProperty<number>;
    MinimumWidth?: VSWidgetProperty<number>;
    SortSource?: VSWidgetProperty<string>;
    SymbolHeight?: VSWidgetProperty<number>;
    SymbolIDSource?: VSWidgetProperty<string>;
    SymbolWidth?: VSWidgetProperty<number>;
    TextColor?: VSWidgetProperty<string>;
    TextColorSource?: VSWidgetProperty<string>;
    TextFormat?: VSWidgetProperty<string>;
    TextSource?: VSWidgetProperty<string>;
    TitleText?: VSWidgetProperty<string>;
    VerticalAlignment?: VSWidgetEnumProperty<VerticalAlignment>;
    Width?: VSWidgetProperty<number>;
    WrapMode?: VSWidgetEnumProperty<TextWrapMode>;
  }

  export interface TableRowDefinition<TableCellDefinitionT extends TableCellDefinition = TableCellDefinition> extends VSWidgetObject {
    BackgroundColor?: VSWidgetProperty<string>;
    CellDefinitions?: VSWidgetProperty<TableCellDefinitionT[]>;
    FontFamily?: VSWidgetProperty<string>;
    FontSize?: VSWidgetProperty<string>;
    FontStyle?: VSWidgetProperty<string>;
    FontWeight?: VSWidgetProperty<string>;
    SymbolColumnBackgroundColor?: VSWidgetProperty<string>;
    TextColor?: VSWidgetProperty<string>;
    TitleBackgroundColor?: VSWidgetProperty<string>;
    TitleTextColor?: VSWidgetProperty<string>;
  }

  export interface TooltipTemplate extends VSWidgetObject {
    HTMLFormat?: VSWidgetProperty<string>;
    IsInteractive?: VSWidgetProperty<boolean>;
  }
  //#endregion Object Type  interfaces

  //#region Widget Options interface
  export interface VSWidgetOptions {
    activityBarSortModeForStackedRowDesign?: VSWidgetEnumValue<BarSortMode>;
    activityBarTopOffsetAndHeightScaleFactor?: VSWidgetValue<number>;
    activityBaselineBarsVisible?: VSWidgetValue<boolean>;
    activityCalendarsEnabled?: VSWidgetValue<boolean>;
    activityHierarchySupplementaryDefinitionID?: VSWidgetValue<string>;
    activityRowSortCodePropertyName?: VSWidgetValue<string>;
    activityRowSortMode?: VSWidgetEnumValue<RowSortMode>;
    additionalDateInterpretedAsEmpty?: VSWidgetValue<Date>;
    additionalDateStringInterpretedAsEmpty?: VSWidgetValue<string>;
    allocationBarDesignOfOtherActivity?: VSWidgetEnumValue<BarDesigns>;
    allocationBarDesignOfOtherSkill?: VSWidgetEnumValue<BarDesigns>;
    allocationBarSortModeForStackedRowDesign?: VSWidgetEnumValue<BarSortMode>;
    allocationBarTopOffsetAndHeightScaleFactor?: VSWidgetValue<number>;
    allocationRowSortCodePropertyName?: VSWidgetValue<string>;
    allocationRowSortMode?: VSWidgetEnumValue<RowSortMode>;
    allocationRowsVisibleInActivitiesView?: VSWidgetValue<boolean>;
    allocationRowsVisibleInResourcesView?: VSWidgetValue<boolean>;
    allocationRowsVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    allocationSelectableOnlyOnOneResourceAtATime?: VSWidgetValue<boolean>;
    /*!SE*/animationDuration?: VSWidgetValue<number>;
    /*!SE*/applicationName?: VSWidgetValue<string>;
    applicationStyleDefinition?: VSWidgetValue<string>;
    applicationVariablesMap?: VSWidgetValue<Record<string, any>>;
    /*!SE*/applicationVersion?: VSWidgetValue<string>;
    asynchronousInteractiveTimeAreaStretching?: VSWidgetValue<boolean>;
    asynchronousRendering?: VSWidgetValue<boolean>;
    automaticDestroyingOnDOMNodeRemoved?: VSWidgetValue<boolean>;
    barsDraggable?: VSWidgetValue<boolean>;
    bottomRowMarginInTimeArea?: VSWidgetValue<number>;
    calendarGridColor?: VSWidgetValue<string>;
    calendarGridWeekendColor?: VSWidgetValue<string>;
    /*!SE*/collapseButtonVisibleOnRowsWithoutVisibleChildren?: VSWidgetValue<boolean>;
    collapseExpandButtonSymbolsMode?: VSWidgetEnumValue<CollapseExpandButtonSymbolsMode>;
    /*!SE*/colorOfFirstTableCellAppliedToGroupColoring?: VSWidgetValue<string>;
    /*!SE*/contextMenuRemainsOpenOnUpdateCalls?: VSWidgetValue<boolean>;
    currentDate?: VSWidgetValue<Date | string>;
    cursorDateLineVisible?: VSWidgetValue<boolean>;
    curvePanesCollapsibleInResourcesView?: VSWidgetValue<boolean>;
    curvePanesCollapsibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    curvePanesResizable?: VSWidgetValue<boolean>;
    curvePanesVisibleInActivitiesView?: VSWidgetValue<boolean>;
    /*!SE*/customCopyrightYear?: VSWidgetValue<number | string>;
    /*!SE*/customName?: VSWidgetValue<string>;
    /*!SE*/customVersion?: VSWidgetValue<string>;
    dateLineCaptionOptimizedPositioningEnabled?: VSWidgetValue<boolean>;
    dateLineGridColor?: VSWidgetValue<string>;
    dateLineGridDashArray?: VSWidgetValue<string>;
    dateLineGridMode?: VSWidgetEnumValue<DateLineGridModes>;
    dateLineGridWidth?: VSWidgetValue<number>;
    decouplingOfAllocationPropertiesFromActivities?: VSWidgetValue<boolean>;
    defaultActivityAllocationRowsCollapsible?: VSWidgetValue<boolean>;
    defaultActivityAllowedBarDragModes?: VSWidgetEnumValue<BarDragModes>;
    defaultActivityAllowedRowDragModes?: VSWidgetEnumValue<RowDragModes>;
    defaultActivityAttachedDateLineIDs?: VSWidgetValue<string[]>;
    defaultActivityBarDesign?: VSWidgetEnumValue<BarDesigns>;
    defaultActivityBarHeight?: VSWidgetValue<number>;
    defaultActivityBarSelectable?: VSWidgetValue<boolean>;
    defaultActivityBarShape?: VSWidgetEnumValue<BarShape>;
    defaultActivityBarTextFormat?: VSWidgetValue<string>;
    defaultActivityBarTooltipTemplateID?: VSWidgetValue<string>;
    defaultActivityCollapsedRowDesign?: VSWidgetEnumValue<RowDesigns>;
    defaultActivityConstraintSymbolColor?: VSWidgetValue<string>;
    defaultActivityExpandedRowDesign?: VSWidgetEnumValue<RowDesigns>;
    /*!SE*/defaultActivityMaximumRowHeight?: VSWidgetValue<number>;
    /*!SE*/defaultActivityMaximumSubRowHeightInTimeArea?: VSWidgetValue<number>;
    defaultActivityMinimumRowHeight?: VSWidgetValue<number>;
    defaultActivityProgressBackgroundColor?: VSWidgetValue<string>;
    defaultActivityRowCollapsible?: VSWidgetValue<boolean>;
    defaultActivityRowSelectable?: VSWidgetValue<boolean>;
    defaultActivityRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultActivitySnapTargetsForEnd?: VSWidgetEnumValue<SnapTargets>;
    defaultActivitySnapTargetsForStart?: VSWidgetEnumValue<SnapTargets>;
    defaultActivityStatusFrameColor?: VSWidgetValue<string>;
    defaultActivityTableRowDefinitionID?: VSWidgetValue<string>;
    defaultAllocationAllowedBarDragModes?: VSWidgetEnumValue<BarDragModes>;
    defaultAllocationAllowedBarDragModesInActivitiesView?: VSWidgetEnumValue<BarDragModes>;
    defaultAllocationAllowedRowDragModes?: VSWidgetEnumValue<RowDragModes>;
    defaultAllocationAllowedRowDragModesInActivitiesView?: VSWidgetEnumValue<RowDragModes>;
    defaultAllocationAttachedDateLineIDs?: VSWidgetValue<string[]>;
    /*!SE*/defaultAllocationBackgroundColor?: VSWidgetValue<string>;
    defaultAllocationBarDesign?: VSWidgetEnumValue<BarDesigns>;
    defaultAllocationBarHeight?: VSWidgetValue<number>;
    defaultAllocationBarSelectable?: VSWidgetValue<boolean>;
    defaultAllocationBarShape?: VSWidgetEnumValue<BarShape>;
    defaultAllocationBarTextFormat?: VSWidgetValue<string>;
    defaultAllocationBarTooltipTemplateID?: VSWidgetValue<string>;
    defaultAllocationConstraintSymbolColor?: VSWidgetValue<string>;
    defaultAllocationMinimumRowHeight?: VSWidgetValue<number>;
    defaultAllocationProgressBackgroundColor?: VSWidgetValue<string>;
    defaultAllocationRowDesign?: VSWidgetEnumValue<RowDesigns>;
    defaultAllocationRowSelectable?: VSWidgetValue<boolean>;
    defaultAllocationRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultAllocationSnapTargetsForEnd?: VSWidgetEnumValue<SnapTargets>;
    defaultAllocationSnapTargetsForStart?: VSWidgetEnumValue<SnapTargets>;
    defaultAllocationStatusFrameColor?: VSWidgetValue<string>;
    defaultAllocationTableRowDefinitionID?: VSWidgetValue<string>;
    defaultCalendarID?: VSWidgetValue<string>;
    defaultEntityAllowedRowDragModes?: VSWidgetEnumValue<RowDragModes>;
    defaultEntityMinimumRowHeight?: VSWidgetValue<number>;
    defaultEntityRowCollapsible?: VSWidgetValue<boolean>;
    defaultEntityRowSelectable?: VSWidgetValue<boolean>;
    defaultEntityRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultEntityTableRowDefinitionID?: VSWidgetValue<string>;
    defaultLinkRoutingType?: VSWidgetEnumValue<LinkRoutingType>;
    defaultLinkSelectable?: VSWidgetValue<boolean>;
    defaultLinkTargetMarker?: VSWidgetValue<LinkMarker>;
    defaultLinkTooltipTemplateID?: VSWidgetValue<string>;
    defaultPeriodHighlighterEntryTooltipTemplateID?: VSWidgetValue<string>;
    defaultResourceAllocationRowCollapsible?: VSWidgetValue<boolean>;
    defaultResourceAllowedRowDragModes?: VSWidgetEnumValue<RowDragModes>;
    defaultResourceBarsPaneVisible?: VSWidgetValue<boolean>;
    defaultResourceCollapsedRowDesign?: VSWidgetEnumValue<RowDesigns>;
    defaultResourceCurveTooltipTemplateID?: VSWidgetValue<string>;
    defaultResourceExpandedRowDesign?: VSWidgetEnumValue<RowDesigns>;
    defaultResourceInventoryCurvePaneColor?: VSWidgetValue<string>;
    defaultResourceInventoryCurvePaneHeight?: VSWidgetValue<number>;
    defaultResourceInventoryCurvePaneVisible?: VSWidgetValue<boolean>;
    defaultResourceLoadCurvePaneColor?: VSWidgetValue<string>;
    defaultResourceLoadCurvePaneHeight?: VSWidgetValue<number>;
    defaultResourceLoadCurvePaneVisible?: VSWidgetValue<boolean>;
    /*!SE*/defaultResourceMaximumRowHeight?: VSWidgetValue<number>;
    /*!SE*/defaultResourceMaximumSubRowHeightInTimeArea?: VSWidgetValue<number>;
    defaultResourceMinimumRowHeight?: VSWidgetValue<number>;
    defaultResourceRowCollapsible?: VSWidgetValue<boolean>;
    defaultResourceRowSelectable?: VSWidgetValue<boolean>;
    defaultResourceRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultResourceTableRowDefinitionID?: VSWidgetValue<string>;
    defaultResourceTableRowDefinitionIDInActivitiesView?: VSWidgetValue<string>;
    defaultSkillAllowedRowDragModes?: VSWidgetEnumValue<RowDragModes>;
    defaultSkillCollapsedRowDesign?: VSWidgetEnumValue<RowDesigns>;
    defaultSkilledAllocationBarTooltipTemplateID?: VSWidgetValue<string>;
    defaultSkilledAllocationRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultSkilledResourceRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultSkillMinimumRowHeight?: VSWidgetValue<number>;
    defaultSkillRowCollapsible?: VSWidgetValue<boolean>;
    defaultSkillRowSelectable?: VSWidgetValue<boolean>;
    defaultSkillRowTooltipTemplateID?: VSWidgetValue<string>;
    defaultSkillTableRowDefinitionID?: VSWidgetValue<string>;
    defaultUpdateMode?: VSWidgetValue<UpdateModes>;
    defaultValuesForActivityEntryProperties?: VSWidgetValue<ActivityEntry>;
    defaultValuesForActivityProperties?: VSWidgetValue<Partial<Activity>>;
    defaultValuesForAllocationEntryProperties?: VSWidgetValue<AllocationEntry>;
    defaultValuesForAllocationProperties?: VSWidgetValue<Partial<Allocation>>;
    defaultValuesForEntityProperties?: VSWidgetValue<Partial<Entity>>;
    defaultValuesForLinkProperties?: VSWidgetValue<Partial<Link>>;
    defaultValuesForResourceProperties?: VSWidgetValue<Partial<Resource>>;
    defaultValuesForSkillProperties?: VSWidgetValue<Partial<Skill>>;
    definedAllocationLinksVisibleInActivitiesView?: VSWidgetValue<boolean>;
    definedAllocationLinksVisibleInResourcesView?: VSWidgetValue<boolean>;
    definedAllocationLinksVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    detailedActivityConstraintSymbolsEnabled?: VSWidgetValue<boolean>;
    detailedAllocationConstraintSymbolsEnabled?: VSWidgetValue<boolean>;
    dragDatesLimitingInteraction?: VSWidgetValue<boolean>;
    dragDatesShownForSingleSelectedObject?: VSWidgetValue<boolean>;
    editable?: VSWidgetValue<boolean>;
    end?: VSWidgetValue<Date | string>;
    entitiesTableCellContentTopOffset?: VSWidgetValue<number>;
    entitiesTableColumnSeparatorColor?: VSWidgetValue<string>;
    entitiesTableTitleFontFamily?: VSWidgetProperty<string>;
    entitiesTableTitleFontSize?: VSWidgetProperty<string>;
    entitiesTableTitleFontStyle?: VSWidgetProperty<string>;
    entitiesTableTitleFontWeight?: VSWidgetProperty<string>;
    entitiesTableShownFullScreen?: VSWidgetValue<boolean>;
    entitiesTableSymbolColumnBackgroundColor?: VSWidgetValue<string>;
    entitiesTableSymbolColumnTitleBackgroundColor?: VSWidgetValue<string>;
    entitiesTableSymbolColumnTitleSymbolIDs?: VSWidgetValue<string[]>;
    entitiesTableSymbolColumnTitleVisible?: VSWidgetValue<boolean>;
    entitiesTableSymbolColumnVisible?: VSWidgetValue<boolean>;
    entitiesTableSymbolColumnWidth?: VSWidgetValue<number>;
    entitiesTableTitleBackgroundColor?: VSWidgetValue<string>;
    entitiesTableTitleColumnSeparatorColor?: VSWidgetValue<string>;
    entitiesTableTitleHeight?: VSWidgetValue<number>;
    entitiesTableTitleHighlightingColor?: VSWidgetValue<string>;
    entitiesTableTitleText?: VSWidgetValue<string>;
    entitiesTableTitleTextColor?: VSWidgetValue<string>;
    entitiesTableTreeViewLineColor?: VSWidgetValue<string>;
    entitiesTableTreeViewLineDashArray?: VSWidgetValue<string>;
    entitiesTableTreeVisualizationMode?: VSWidgetEnumValue<TreeVisualizationMode>;
    entitiesTableViewWidth?: VSWidgetValue<number>;
    entitiesTableVisibleInActivitiesView?: VSWidgetValue<boolean>;
    entitiesTableVisibleInResourcesView?: VSWidgetValue<boolean>;
    entitiesTableVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    entityHierarchySupplementaryDefinitionID?: VSWidgetValue<string>;
    entityRowSortCodePropertyName?: VSWidgetValue<string>;
    entityRowSortMode?: RowSortMode | number | null;
    finishedAllocationBarsShownUnstackedInBackground?: VSWidgetValue<boolean>;
    firstDayOfWeek?: VSWidgetValue<DayOfWeek | number>;
    fixedTableColumnWidth?: VSWidgetValue<number>;
    fontFamily?: VSWidgetProperty<string>;
    fontSize?: VSWidgetProperty<string>;
    fontStyle?: VSWidgetProperty<string>;
    fontWeight?: VSWidgetProperty<string>;
    /*!SE*/groupCellsWithHorizontalSeparationLine?: VSWidgetValue<boolean>;
    /*!SE*/higherCurvePanesOnExceededScaleMaximumValue?: VSWidgetValue<boolean>;
    ignoreCalendarOnActivityBarInteractions?: VSWidgetValue<boolean>;
    ignoreCalendarOnAllocationBarInteractions?: VSWidgetValue<boolean>;
    interactiveActivationOfLoggingEnabled?: VSWidgetValue<boolean>;
    interactiveSwitchingOfSortOrderEnabled?: VSWidgetValue<boolean>;
    /*!SE*/internalObjectCopiesNeeded?: VSWidgetValue<boolean>;
    intlDateTimeFormatOptionsMap?: VSWidgetValue<{
      [key: string]: Intl.DateTimeFormatOptions | null;
    }>;
    intlNumberFormatOptionsMap?: VSWidgetValue<{
      [key: string]: Intl.NumberFormatOptions | null;
    }>;
    /*!SE*/language?: VSWidgetValue<Locale | string>;
    licenseKey?: VSWidgetValue<string>;
    linesShownInLoadCurvePanes?: VSWidgetValue<boolean>;
    linksVisibleInActivitiesView?: VSWidgetValue<boolean>;
    linksVisibleInResourcesView?: VSWidgetValue<boolean>;
    linksVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    linksWithDanglingStartOrEndVisible?: VSWidgetValue<boolean>;
    locale?: VSWidgetValue<Locale | string>;
    loggingEnabled?: VSWidgetValue<boolean>;
    loggingFileCompressionEnabled?: VSWidgetValue<boolean>;
    loggingVerboseLevel?: VSWidgetValue<number>;
    mainViewAreaVisibleInActivitiesView?: VSWidgetValue<boolean>;
    mainViewAreaVisibleInLoadsView?: VSWidgetValue<boolean>;
    mainViewAreaVisibleInResourcesView?: VSWidgetValue<boolean>;
    mainViewAreaVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    maximumResourceInventoryCurvePaneHeight?: VSWidgetValue<number>;
    maximumResourceLoadCurvePaneHeight?: VSWidgetValue<number>;
    maximumSnapDistance?: VSWidgetValue<number>;
    maximumTimeResolutionUnit?: VSWidgetEnumValue<TimeUnit | string>;
    maximumTimeResolutionUnitFactor?: VSWidgetValue<number>;
    maximumTopViewAreaHeightRatio?: VSWidgetValue<number>;
    minimumResourceInventoryCurvePaneHeight?: VSWidgetValue<number>;
    minimumResourceLoadCurvePaneHeight?: VSWidgetValue<number>;
    multipleBarDraggingEnabled?: VSWidgetValue<boolean>;
    multipleSelectionEnabled?: VSWidgetEnumValue<MultipleSelectionMode | boolean>;
    nonworkingTimesCalendarIDs?: VSWidgetValue<string[]>;
    nonworkingTimeVisible?: VSWidgetValue<boolean>;
    objectHighlightFlashingEnabled?: VSWidgetValue<boolean>;
    objectHighlightingColor?: VSWidgetValue<string>;
    pastBackgroundFillColor?: VSWidgetValue<string>;
    pastBackgroundLineColor?: VSWidgetValue<string>;
    pastBackgroundLineDashArray?: VSWidgetValue<string>;
    pastBackgroundLineWidth?: VSWidgetValue<number>;
    patternShownOnOverloadCurves?: VSWidgetValue<boolean>;
    preventDefaultOnContextMenuEvents?: VSWidgetValue<boolean>;
    progressBarHeight?: VSWidgetValue<number>;
    progressBarWidthCalculationMode?: VSWidgetEnumValue<ProgressBarWidthCalculationMode>;
    reducedBarTopOffsetAndHeightScaleFactor?: VSWidgetValue<number>;
    /*!SE*/referenceDate?: VSWidgetValue<Date | string>;
    /*!SE*/relativeDateModeEnabled?: VSWidgetValue<boolean>;
    releaseDueDateConnectionsVisible?: VSWidgetValue<boolean>;
    resetValueForDifferentialUpdate?: any;
    resourceHierarchySupplementaryDefinitionID?: VSWidgetValue<string>;
    resourceHierarchySupplementaryDefinitionIDInLoadsView?: VSWidgetValue<string>;
    resourceRowSortCodePropertyName?: VSWidgetValue<string>;
    resourceRowSortMode?: VSWidgetEnumValue<RowSortMode>;
    resourcesVisibleInActivitiesView?: VSWidgetValue<boolean>;
    rowsDraggable?: VSWidgetValue<boolean>;
    rowSortModeNoneEnabledOnInteractiveSwitchingOfSortOrder?: VSWidgetValue<boolean>;
    scrollOffsetsChangedCallbackTimeDelay?: VSWidgetValue<number>;
    scrollToObjectAnimationEnabled?: VSWidgetValue<boolean>;
    /*!SE*/selectionBehavior?: VSWidgetEnumValue<SelectionBehavior>;
    selectionColor?: VSWidgetValue<string>;
    separationLinesInColoredIndentation?: VSWidgetValue<boolean>;
    skillRowSortCodePropertyName?: VSWidgetValue<string>;
    skillRowSortMode?: VSWidgetEnumValue<RowSortMode>;
    sortingIndicatorVisible?: VSWidgetValue<boolean>;
    splitterHighlightingColor?: VSWidgetValue<string>;
    start?: VSWidgetValue<Date | string>;
    /*!SE*/startAndEnd?: VSWidgetValue<Date[] | string[]>;
    subRowDistanceInTimeArea?: VSWidgetValue<number>;
    suitableActivityOverlayColor?: VSWidgetValue<string>;
    suitableResourceOverlayColor?: VSWidgetValue<string>;
    symbolColumnBackgroundColor?: VSWidgetValue<string>;
    symbolColumnTitleBackgroundColor?: VSWidgetValue<string>;
    symbolColumnTitleSymbolIDs?: VSWidgetValue<string[]>;
    symbolColumnTitleVisible?: VSWidgetValue<boolean>;
    symbolColumnVisible?: VSWidgetValue<boolean>;
    symbolColumnWidth?: VSWidgetValue<number>;
    tableCellContentTopOffset?: VSWidgetValue<number>;
    tableColumnSeparatorColor?: VSWidgetValue<string>;
    tableRowDefinitionIDForTitleInActivitiesView?: VSWidgetValue<string>;
    tableRowDefinitionIDForTitleInEntitiesTable?: VSWidgetValue<string>;
    tableRowDefinitionIDForTitleInLoadsView?: VSWidgetValue<string>;
    tableRowDefinitionIDForTitleInResourcesView?: VSWidgetValue<string>;
    tableRowDefinitionIDForTitleInSkilledResourcesView?: VSWidgetValue<string>;
    tableTitleAndTimescaleHeight?: VSWidgetValue<number>;
    tableTitleBackgroundColor?: VSWidgetValue<string>;
    tableTitleColumnSeparatorColor?: VSWidgetValue<string>;
    tableTitleFontFamily?: VSWidgetProperty<string>;
    tableTitleFontSize?: VSWidgetProperty<string>;
    tableTitleFontStyle?: VSWidgetProperty<string>;
    tableTitleFontWeight?: VSWidgetProperty<string>;
    tableTitleHighlightingColor?: VSWidgetValue<string>;
    tableTitleText?: VSWidgetValue<string>;
    tableTitleTextColor?: VSWidgetValue<string>;
    tableViewWidth?: VSWidgetValue<number>;
    tableViewWidthInActivitiesView?: VSWidgetValue<number>;
    tableViewWidthInLoadsView?: VSWidgetValue<number>;
    tableViewWidthInResourcesView?: VSWidgetValue<number>;
    tableViewWidthInSkilledResourcesView?: VSWidgetValue<number>;
    tableViewWidthsSynchronized?: VSWidgetValue<boolean>;
    timeAreaBackgroundColor?: VSWidgetValue<string>;
    timeAreaPanningMode?: VSWidgetEnumValue<PanningMode>;
    timescaleBackgroundColor?: VSWidgetValue<string>;
    timescaleHighlightingColor?: VSWidgetValue<string>;
    timescaleInteractionMode?: VSWidgetEnumValue<TimescaleInteractionModes>;
    timescaleNavigationMode?: VSWidgetEnumValue<TimescaleNavigationMode>;
    timescaleTextColor?: VSWidgetValue<string>;
    timescaleTickColor?: VSWidgetValue<string>;
    timescaleWeekendBackgroundColor?: VSWidgetValue<string>;
    timescaleWeekendTextColor?: VSWidgetValue<string>;
    timeStepUnit?: VSWidgetEnumValue<TimeUnit>;
    timeStepUnitFactor?: VSWidgetValue<number>;
    timeZone?: VSWidgetValue<string>;
    tonedDownOverlayColor?: VSWidgetValue<string>;
    tooltipDelay?: VSWidgetValue<number>;
    topBarSymbolsVisible?: VSWidgetValue<boolean>;
    topRowMarginInTimeArea?: VSWidgetValue<number>;
    topViewAreaVisibleInActivitiesView?: VSWidgetValue<boolean>;
    topViewAreaVisibleInLoadsView?: VSWidgetValue<boolean>;
    topViewAreaVisibleInResourcesView?: VSWidgetValue<boolean>;
    topViewAreaVisibleInSkilledResourcesView?: VSWidgetValue<boolean>;
    treeViewLineColor?: VSWidgetValue<string>;
    treeViewLineDashArray?: VSWidgetValue<string>;
    treeVisualizationMode?: VSWidgetEnumValue<TreeVisualizationMode>;
    triggeringOfOnClickedInTimeAreaOfRow?: VSWidgetValue<boolean>;
    triggeringOfOnCollapseStateChangedByUpdateCalls?: VSWidgetValue<boolean>;
    triggeringOfOnShowContextMenuInTimeAreaOfRow?: VSWidgetValue<boolean>;
    triggeringOfOnShowTooltipForEntriesInBarsEnabled?: VSWidgetValue<boolean>;
    /*!SE*/uniformExpandCollapseButtonSymbol?: VSWidgetValue<boolean>;
    unsuitableActivityOverlayColor?: VSWidgetValue<string>;
    unsuitableResourceOverlayColor?: VSWidgetValue<string>;
    /*!SE*/updateOptimizationEnabled?: VSWidgetValue<boolean>;
    version?: VSWidgetValue<string>;
    verticalSplitterWidth?: VSWidgetValue<number>;
    viewType?: VSWidgetEnumValue<ViewType>;
    visualZoomFactor?: VSWidgetValue<number>;
    watermarkOpacity?: VSWidgetValue<number>;
    watermarkSymbolID?: VSWidgetValue<string>;
    weekNumbering?: VSWidgetValue<"ISO8601" | "USA">;
    workDate?: VSWidgetValue<Date | string>;
    workDateLineCaption?: VSWidgetValue<string>;
    worldViewExtent?: VSWidgetValue<number>;
    worldViewPosition?: VSWidgetEnumValue<WorldViewPosition>;
    worldViewVisible?: VSWidgetValue<boolean>;

    // Callbacks
    canDrag?: VSWidgetValue<(args: CanDragCallbackArgs) => void>;
    canSelect?: VSWidgetValue<(args: CanSelectCallbackArgs) => void>;
    compareActivities?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    compareAllocations?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    compareEntities?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    /*!SE*/compareObjects?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    compareResources?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    compareSkills?: VSWidgetValue<(args: CompareObjectsCallbackArgs) => void>;
    determineGroupingCode?: VSWidgetValue<(args: DetermineGroupingCodeCallbackArgs) => void>;
    onClicked?: VSWidgetValue<(args: OnClickedCallbackArgs) => void>;
    onCloseContextMenu?: VSWidgetValue<() => void>;
    onCollapseStateChanged?: VSWidgetValue<(args: OnCollapseStateChangedCallbackArgs) => void>;
    onCurveCollapseStateChanged?: VSWidgetValue<(args: OnCurveCollapseStateChangedCallbackArgs) => void>;
    onCurvePaneResized?: VSWidgetValue<(args: OnCurvePaneResizedCallbackArgs) => void>;
    onDoubleClicked?: VSWidgetValue<(args: OnDoubleClickedCallbackArgs) => void>;
    onDrag?: VSWidgetValue<(args: OnDragCallbackArgs) => void>;
    onDragEnd?: VSWidgetValue<(args: OnDragEndCallbackArgs) => void>;
    onDragStart?: VSWidgetValue<(args: OnDragStartCallbackArgs) => void>;
    onDrop?: VSWidgetValue<(args: OnDropCallbackArgs) => void>;
    onLogError?: VSWidgetValue<(args: OnLogErrorCallbackArgs) => void>;
    onLogMethodCall?: VSWidgetValue<(args: OnLogMethodCallbackArgs) => void>;
    onLogWarning?: VSWidgetValue<(args: OnLogWarningCallbackArgs) => void>;
    onRowSortingChangeRequested?: VSWidgetValue<(args: OnRowSortingChangeRequestedCallbackArgs) => void>;
    onSaveAsPDFProgress?: VSWidgetValue<(args: OnSaveAsPDFProgressCallbackArgs) => void>;
    onSelectionChanged?: VSWidgetValue<(args: OnSelectionChangedCallbackArgs) => void>;
    onShowContextMenu?: VSWidgetValue<(args: OnShowContextMenuCallbackArgs) => void>;
    onShowTooltip?: VSWidgetValue<(args: OnShowTooltipCallbackArgs) => void>;
    onTableCellDefinitionWidthChanged?: VSWidgetValue<(args: OnTableCellDefinitionWidthChangedCallbackArgs) => void>;
    onTimeAreaViewParametersChanged?: VSWidgetValue<(args: OnTimeAreaViewParametersChangedCallbackArgs) => void>;
    onVerticalScrollOffsetChanged?: VSWidgetValue<(args: OnVerticalScrollOffsetChangedCallbackArgs) => void>;
    /*!SE*/visibilityFilter?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
    visibilityFilterForActivities?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
    visibilityFilterForAllocations?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
    visibilityFilterForEntities?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
    visibilityFilterForResources?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
    visibilityFilterForSkills?: VSWidgetValue<(args: VisibilityFilterCallbackArgs) => void>;
  }

  export interface VSWidgetViewParameters {
    entitiesTableViewWidth: number;
    tableViewWidth: number;
    rowObjectAtTop: VSWidgetObject | undefined;
    rowObjectTypeAtTop: VSWidgetObject | undefined;
    tableHorizontalScrollOffset: number;
    timeAreaHorizontalScrollOffset: number;
    topViewRowObjectAtTop: VSWidgetObject | undefined;
    topViewRowObjectTypeAtTop: VSWidgetObject | undefined;
    topViewScrollOffset: number;
    verticalScrollOffset: number;
    timeAreaWidth: number;
    timeResolutionUnit: TimeUnit;
    timeResolutionUnitCount: number;
    visibleEnd: Date;
    visibleStart: Date;
    entityAtTop?: Entity | undefined;
    entitiesTableHorizontalScrollOffset?: number;
    entitiesTableVerticalScrollOffset?: number;
  }
  //#endregion Widget Options interface

  //#region CallbackArgs interfaces
  export interface DeterminedObjectArgs {
    object?: VSWidgetObject;
    objectType?: ObjectType;
    visualType?: VisualType;
    visualSubtype?: VisualSubtype;
    cellIndex?: number;
    date?: Date;
    capacity?: number;
    load?: number;
    singleLoads?: Object;
    entry?: ActivityEntry | AllocationEntry | PeriodHighlighterEntry;
    entryIndex?: number;
    curve?: Curve;
    periodHighlighter?: PeriodHighlighter;
    hierarchySupplementaryDefinitionID?: string;
    hierarchySupplementaryDefinition?: HierarchyLevelSupplementaryDefinition;
    hierarchyLevelSupplementaryDefinitionIndex?: number;
    groupingLevelDefinitionIndex?: number;
    groupingCodes?: string[];
  }

  export interface VSWidgetCallbackArgs {
  }
  
  export interface CanDragCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    allowedDragModes?: BarDragModes | RowDragModes;
    endPropertyName?: string;
    event?: Event;
    object: VSWidgetObject;
    objectType: ObjectType;
    promise?: Promise<void>;
    selectedObjects?: VSWidgetObject[];
    skill?: Skill;
    startPropertyName?: string;
    visualSubtype?: VisualSubtype;
    visualType: VisualType;
  }

  export interface CanSelectCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    event?: Event;
    object: VSWidgetObject;
    objectType: ObjectType;
    otherSelectedObjects?: VSWidgetObject[];
    skill?: Skill;
    visualSubtype?: VisualSubtype;
    visualType: VisualType;
  }

  export interface CompareObjectsCallbackArgs extends VSWidgetCallbackArgs {
    groupingCodeA?: string;
    groupingCodeB?: string;
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    isALowerThanB?: boolean;
    objectA?: VSWidgetObject;
    objectB?: VSWidgetObject;
    objectType: ObjectType;
    viewType: ViewType;
  }

  export interface DetermineGroupingCodeCallbackArgs extends VSWidgetCallbackArgs {
    code: string;
    text: string;
    groupingLevelDefinitionIndex: number;
    hierarchySupplementaryDefinition: HierarchySupplementaryDefinition;
    hierarchyLevelSupplementaryDefinitionIndex: number;
    objectType: ObjectType;
    viewType: ViewType;
  }

  export interface OnClickedCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cellIndex?: number;
    curve?: Curve;
    date?: Date | string;
    entry?: AllocationEntry | ActivityEntry | PeriodHighlighterEntry;
    entryIndex?: number;
    event: Event;
    groupingCodes?: string[];
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    object?: VSWidgetObject;
    objectType: ObjectType;
    periodHighlighter?: PeriodHighlighter;
    skill?: Skill;
    symbol?: Symbol;
    symbolIndex?: number;
    visualSubtype?: VisualSubtype;
    visualType: VisualType;
  }

  export interface OnCollapseStateChangedCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    groupingCodes?: string[];
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    hierarchyLevelSupplementaryDefinitionIndex?: number;
    interactively?: boolean;
    isForAllocationRows?: boolean;
    newCollapseState: CollapseState;
    object?: VSWidgetObject;
    objectType: ObjectType;
    promise?: Promise<void>;
    skill?: Skill;
  }

  export interface OnCurveCollapseStateChangedCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    interactively?: boolean;
    newCollapseState: CollapseState;
    object: VSWidgetObject;
    objectType: ObjectType;
    promise?: Promise<void>;
    skill?: Skill;
  }

  export interface OnCurvePaneResizedCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    newHeight: number;
    object: VSWidgetObject;
    objectType: ObjectType;
    /*!SE*/paneIndex?: PaneIndex;
    skill?: Skill;
  }

  export interface OnDoubleClickedCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cellIndex?: number;
    curve?: Curve;
    date?: Date;
    entry?: AllocationEntry | ActivityEntry | PeriodHighlighterEntry;
    entryIndex?: number;
    event: Event;
    groupingCodes?: string[];
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    object?: VSWidgetObject;
    objectType: ObjectType;
    periodHighlighter?: PeriodHighlighter;
    skill?: Skill;
    symbol?: Symbol;
    symbolIndex?: number;
    visualSubtype?: VisualSubtype;
    visualType?: VisualType;
  }

  export interface OnDragCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cancel: boolean;
    date?: Date;
    dragMode: BarDragModes | RowDragModes;
    dropAllowed: boolean;
    endPropertyName?: string;
    event: Event;
    newActivity?: Activity;
    newDate?: Date;
    newEnd?: Date;
    newRowObjectIsSuitableActivity?: boolean;
    newRowObjectIsSuitableResource?: boolean;
    newRowObjectType?: ObjectType;
    newSkill?: Skill;
    newStart?: Date;
    object: VSWidgetObject;
    objectType: ObjectType;
    promise?: Promise<void>;
    rowInsertionMode?: RowInsertionMode;
    skill?: Skill;
    startPropertyName?: string;
    visualType: VisualType;
  }

  export interface OnDragEndCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    date?: Date;
    dragMode: BarDragModes | RowDragModes;
    endPropertyName?: string;
    event: Event;
    object: VSWidgetObject;
    objectType: ObjectType;
    skill?: Skill;
    startPropertyName?: string;
    visualType: VisualType;
  }

  export interface OnDragStartCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cancel: boolean;
    date?: Date;
    dragMode: BarDragModes | RowDragModes;
    endPropertyName?: string;
    event?: Event;
    object: VSWidgetObject;
    objectType: ObjectType;
    skill?: Skill;
    startPropertyName?: string;
    visualType: VisualType;
  }

  export interface OnDropCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cancel: boolean;
    coupledObjects?: Activity[] | Allocation[];
    date?: Date;
    dragMode: BarDragModes | RowDragModes;
    dropAllowed: boolean;
    endPropertyName?: string;
    event?: Event;
    newActivity?: Activity;
    newDate?: Date;
    newEnd?: Date;
    newRowObjectType?: ObjectType;
    newSkill?: Skill;
    newSortCode?: number;
    newStart?: Date;
    object: VSWidgetObject;
    objectType: ObjectType;
    otherNewSortCodesForSiblingObjects?: {
      object: Activity | Entity | Resource;
      newSortCode: number;
    }[];
    promise?: Promise<{ cancel: boolean } | void>;
    proposedMethodCalls?: {
      methodName: string;
      args: any[];
    }[];
    rowInsertionMode?: RowInsertionMode;
    skill?: Skill;
    startPropertyName?: string;
    startsAndEndsOfEntries?: {
      entryIndex: number;
      newEnd: Date;
      newStart: Date;
    }[];
    startsAndEndsOfCoupledObjects?: {
      newEnd: Date;
      newStart: Date;
      object: Activity | Allocation;
      startsAndEndsOfEntries?: {
        entryIndex: number;
        newEnd: Date;
        newStart: Date;
      }[];
    }[];
    visualType: VisualType;
  }

  export interface OnLogErrorCallbackArgs extends VSWidgetCallbackArgs {
    commandCounter: number;
    commandName: string;
    error: Error;
    rethrow: boolean;
  }

  export interface OnLogMethodCallbackArgs extends VSWidgetCallbackArgs {
    command: string;
    result: any;
  }

  export interface OnLogWarningCallbackArgs extends VSWidgetCallbackArgs {
    commandCounter: number;
    commandName: string;
    description: string;
    warningCode: WarningCode;
  }

  export interface OnRowSortingChangeRequestedCallbackArgs extends VSWidgetCallbackArgs {
    cancel: boolean;
    event: Event;
    object: VSWidgetObject;
    objectType: ObjectType;
    sortCodeSource: string;
    sortMode: RowSortMode;
  }

  export interface OnSaveAsPDFProgressCallbackArgs extends VSWidgetCallbackArgs {
    currentPageNumber: number;
    pageCount: number;
    promise?: Promise<void>;
  }

  export interface OnSelectionChangedCallbackArgs extends VSWidgetCallbackArgs {
    cancel: boolean;
    event: Event;
    object?: VSWidgetObject;
    objectType?: ObjectType;
    previousSelectedObjects?: VSWidgetObject[];
    previousSelectedObjectType?: ObjectType;
    selectedObjects?: VSWidgetObject[];
    reason: SelectionChangedReason;
    reasonObject?: VSWidgetObject;
    reasonObjectType?: ObjectType;
    visualType?: VisualType;
  }

  export interface OnShowContextMenuCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cellIndex?: number;
    curve?: Curve;
    date?: Date;
    entry?: AllocationEntry | ActivityEntry | PeriodHighlighterEntry;
    entryIndex?: number;
    event: Event;
    groupingCodes?: string[];
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    object?: VSWidgetObject;
    objectType: ObjectType;
    periodHighlighter?: PeriodHighlighter;
    promise?: Promise<void>;
    skill?: Skill;
    symbol?: Symbol;
    symbolIndex?: number;
    timePeriodEnd?: Date;
    timePeriodStart?: Date;
    visualSubtype?: VisualSubtype;
    visualType?: VisualType;
  }

  export interface OnShowTooltipCallbackArgs extends VSWidgetCallbackArgs {
    activity?: Activity;
    cellIndex?: number;
    curve?: Curve;
    date?: Date;
    entry?: AllocationEntry | ActivityEntry | PeriodHighlighterEntry;
    entryIndex?: number;
    event: Event;
    groupingCodes?: string[];
    groupingLevelDefinitionIndex?: number;
    hierarchySupplementaryDefinition?: HierarchySupplementaryDefinition;
    innerHTML?: string;
    object?: VSWidgetObject;
    objectType: ObjectType;
    periodHighlighter?: PeriodHighlighter;
    promise?: Promise<void>;
    skill?: Skill;
    symbol?: Symbol;
    symbolIndex?: number;
    tooltipTemplate?: TooltipTemplate;
    tooltipTemplateID?: string;
    visualSubtype?: VisualSubtype;
    visualType?: VisualType;
  }

  export interface OnTableCellDefinitionWidthChangedCallbackArgs extends VSWidgetCallbackArgs {
    cellIndex: number;
    newWidth: number;
    oldWidth: number;
    tableRowDefinition: TableRowDefinition;
    tableType: TableType;
  }

  export interface OnTimeAreaViewParametersChangedCallbackArgs extends VSWidgetCallbackArgs {
    end: Date;
    entitiesTableViewWidth: number;
    horizontalScrollOffset: number;
    start: Date;
    tableViewWidth: number;
    timeResolutionUnit: TimeUnit;
    timeResolutionUnitCount: number;
    width: number;
  }

  export interface OnVerticalScrollOffsetChangedCallbackArgs extends VSWidgetCallbackArgs {
    rowObjectAtTheTop?: VSWidgetObject;
    rowObjectTypeAtTheTop?: ObjectType;
    scrollOffset: number;
    tableType: TableType;
    topViewRowObjectAtTheTop?: VSWidgetObject;
    topViewRowObjectTypeAtTheTop: ObjectType;
    topViewScrollOffset: number;
  }

  export interface VisibilityFilterCallbackArgs extends VSWidgetCallbackArgs {
    object: VSWidgetObject;
    objectType: ObjectType;
    promise?: Promise<boolean>;
    result: boolean;
  }
  //#endregion CallbackArgs interfaces

  //#region SaveAsPDFOptions interface
  export interface SaveAsPDFOptions {
    author?: VSWidgetProperty<string>;
    bottomHTML?: VSWidgetProperty<string>;
    bottomPageMargin?: VSWidgetProperty<number>;
    bottomText?: VSWidgetProperty<string>;
    bottomTimescaleVisible?: VSWidgetProperty<boolean>;
    cutMarksVisible?: VSWidgetProperty<boolean>;
    end?: VSWidgetProperty<Date | string>;
    horPageCountLimit?: VSWidgetProperty<number>;
    keywords?: VSWidgetProperty<string>;
    leftPageMargin?: VSWidgetProperty<number>;
    ownerPassword?: VSWidgetProperty<string>;
    pageFormat?: VSWidgetProperty<string>;
    pageOrientation?: VSWidgetEnumProperty<PageOrientation>;
    permissionToAnnotate?: VSWidgetProperty<boolean>;
    permissionToAssembleDocument?: VSWidgetProperty<boolean>;
    permissionToCopy?: VSWidgetProperty<boolean>;
    permissionToCopyForContentAccessibility?: VSWidgetProperty<boolean>;
    permissionToModify?: VSWidgetProperty<boolean>;
    permissionToPrint?: VSWidgetProperty<boolean>;
    printingMode?: VSWidgetEnumProperty<PrintingMode>;
    rightPageMargin?: VSWidgetProperty<number>;
    start?: VSWidgetProperty<Date | string>;
    subject?: VSWidgetProperty<string>;
    title?: VSWidgetProperty<string>;
    topHTML?: VSWidgetProperty<string>;
    topPageMargin?: VSWidgetProperty<number>;
    topText?: VSWidgetProperty<string>;
    userPassword?: VSWidgetProperty<string>;
    verPageCountLimit?: VSWidgetProperty<number>;
    watermarkSymbolID?: VSWidgetProperty<string>;
    zoomFactorInPercent?: VSWidgetProperty<number>;
  }
  //#endregion SaveAsPDFOptions interface
}
