diff --git a/types/@oracle/index.d.ts b/types/@oracle/index.d.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/types/@oracle/oraclejet/index.d.ts b/types/@oracle/oraclejet/index.d.ts
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/types/@oracle/oraclejet/ojs/index.d.ts b/types/@oracle/oraclejet/ojs/index.d.ts
new file mode 100644
index 0000000000..90fb69208a
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/index.d.ts
@@ -0,0 +1,23 @@
+///
+declare namespace oj {
+
+ var revision: string;
+ var version: string;
+ function ajax(settings?: object): object;
+ function sync(method: string, model: oj.Model|oj.Collection, options?: object): object;
+
+}
+declare namespace oj {
+ interface JetSettableProperties {
+ }
+ interface GenericSetter {
+ set(propertyName: K, propertyValue: SP[K]): void;
+ unset(propertyName: K): void;
+ }
+ abstract class JetElement extends HTMLElement implements GenericSetter {
+ set(propertyName: K, propertyValue: SP[K]): void;
+ unset(propertyName: K): void;
+ }
+ interface JetElementEventMap extends HTMLElementEventMap {
+ }
+}
\ No newline at end of file
diff --git a/types/@oracle/oraclejet/ojs/ojaccordion/index.d.ts b/types/@oracle/oraclejet/ojs/ojaccordion/index.d.ts
new file mode 100644
index 0000000000..427ee7ecaa
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojaccordion/index.d.ts
@@ -0,0 +1,49 @@
+///
+///
+declare namespace oj {
+ class ojAccordion extends baseComponent {
+ expanded: Array<{id?: string, index?: number}>|null;
+ multiple: boolean;
+ onExpandedChanged: (event: CustomEvent)=> any;
+ onMultipleChanged: (event: CustomEvent)=> any;
+ onOjBeforeCollapse: (event: oj.ojAccordion.ojBeforeCollapse)=> any;
+ onOjBeforeExpand: (event: oj.ojAccordion.ojBeforeExpand)=> any;
+ onOjCollapse: (event: oj.ojAccordion.ojCollapse)=> any;
+ onOjExpand: (event: oj.ojAccordion.ojExpand)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojAccordionEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ refresh(): void;
+ }
+ namespace ojAccordion {
+ class ojBeforeCollapse extends CustomEvent<{toCollapsible: Element, fromCollapsible: Element, [propName: string]: any}> {
+
+ }
+
+ class ojBeforeExpand extends CustomEvent<{toCollapsible: Element, fromCollapsible: Element, [propName: string]: any}> {
+
+ }
+
+ class ojCollapse extends CustomEvent<{toCollapsible: Element, fromCollapsible: Element, [propName: string]: any}> {
+
+ }
+
+ class ojExpand extends CustomEvent<{toCollapsible: Element, fromCollapsible: Element, [propName: string]: any}> {
+
+ }
+ }
+ interface ojAccordionEventMap extends oj.baseComponentEventMap {
+ 'ojBeforeCollapse': oj.ojAccordion.ojBeforeCollapse;
+ 'ojBeforeExpand': oj.ojAccordion.ojBeforeExpand;
+ 'ojCollapse': oj.ojAccordion.ojCollapse;
+ 'ojExpand': oj.ojAccordion.ojExpand;
+ 'expandedChanged': CustomEvent;
+ 'multipleChanged': CustomEvent;
+ }
+ interface ojAccordionSettableProperties extends baseComponentSettableProperties {
+ expanded: Array|Array|Array<{id?: string, index?: number}>|null;
+ multiple: boolean;
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojanimation/index.d.ts b/types/@oracle/oraclejet/ojs/ojanimation/index.d.ts
new file mode 100644
index 0000000000..bd4b77f2c6
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojanimation/index.d.ts
@@ -0,0 +1,19 @@
+declare namespace oj {
+ namespace AnimationUtils {
+ function collapse(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, direction?: string, startMaxHeight?: string, endMaxHeight?: string, startMaxWidth?: string, endMaxWidth?: string}): Promise;
+ function expand(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, direction?: string, startMaxHeight?: string, endMaxHeight?: string, startMaxWidth?: string, endMaxWidth?: string}): Promise;
+ function fadeIn(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, startOpacity?: number, endOpacity?: number}): Promise;
+ function fadeOut(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, startOpacity?: number, endOpacity?: number}): Promise;
+ function flipIn(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, axis?: string, startAngle?: string, endAngle?: string, backfaceVisibility?: string, perspective?: string, transformOrigin?: string, flipTarget?: string}): Promise;
+ function flipOut(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, axis?: string, startAngle?: string, endAngle?: string, backfaceVisibility?: string, perspective?: string, transformOrigin?: string, flipTarget?: string}): Promise;
+ function ripple(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, offsetX?: string, offsetY?: string, color?: string, diameter?: string, startOpacity?: number, endOpacity?: number}): Promise;
+ function slideIn(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, direction?: string, offsetX?: string, offsetY?: string}): Promise;
+ function slideOut(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, direction?: string, offsetX?: string, offsetY?: string}): Promise;
+ function zoomIn(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, axis?: string, transformOrigin?: string}): Promise;
+ function zoomOut(element: Element, options?: {delay?: string, duration?: string, timingFunction?: string, persist?: string, axis?: string, transformOrigin?: string}): Promise;
+ }
+ namespace AnimationUtils {
+ type AnimationMethods = 'collapse'|'expand'|'fadeIn'|'fadeOut'|'flipIn'|'flipOut'|'ripple'|'slideIn'|'slideOut'|'zoomIn'|'zoomOut';
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojarraydataprovider/index.d.ts b/types/@oracle/oraclejet/ojs/ojarraydataprovider/index.d.ts
new file mode 100644
index 0000000000..dddaf2290a
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojarraydataprovider/index.d.ts
@@ -0,0 +1,22 @@
+///
+declare namespace oj {
+ class ArrayDataProvider implements DataProvider {
+ constructor(data: Array|(()=> Array), options?: {sortComparators?: SortComparators, implicitSort?: SortCriterion[], keys?: Array|(()=> Array), idAttribute?: string|Array, keyAttributes?: string|Array});
+ addEventListener(eventType: string, listener: EventListener): void
+ containsKeys(params: FetchByKeysParameters): Promise>
+ dispatchEvent(evt: Event): boolean
+ fetchByKeys(params: FetchByKeysParameters): Promise>
+ fetchByOffset(params: FetchByOffsetParameters): Promise>
+ fetchFirst>(params?: FetchListParameters): AsyncIterable
+ getCapability(capabilityName?: string): any
+ getTotalSize(): Promise;
+ isEmpty(): 'yes'|'no'|'unknown';
+ removeEventListener(eventType: string, listener: EventListener): void
+ }
+
+}
+declare namespace oj {
+ interface SortComparators {
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojarraytreedataprovider/index.d.ts b/types/@oracle/oraclejet/ojs/ojarraytreedataprovider/index.d.ts
new file mode 100644
index 0000000000..dbb445c36f
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojarraytreedataprovider/index.d.ts
@@ -0,0 +1,18 @@
+///
+declare namespace oj {
+ class ArrayTreeDataProvider implements TreeDataProvider {
+ constructor(data: Array|(()=> Array), options?: {sortComparators?: SortComparators, implicitSort?: SortCriterion[], keyAttributes?: string|Array, keyAttributesScope?: 'global'|'siblings', childrenAttribute?: string});
+ addEventListener(eventType: string, listener: EventListener): void
+ containsKeys(params: FetchByKeysParameters): Promise>
+ dispatchEvent(evt: Event): boolean
+ fetchByKeys(params: FetchByKeysParameters): Promise>
+ fetchByOffset(params: FetchByOffsetParameters): Promise>
+ fetchFirst>(params?: FetchListParameters): AsyncIterable
+ getCapability(capabilityName?: string): any
+ getChildDataProvider(any): ArrayTreeDataProvider
+ getTotalSize(): Promise;
+ isEmpty(): 'yes'|'no'|'unknown';
+ removeEventListener(eventType: string, listener: EventListener): void
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojavatar/index.d.ts b/types/@oracle/oraclejet/ojs/ojavatar/index.d.ts
new file mode 100644
index 0000000000..bfdda53359
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojavatar/index.d.ts
@@ -0,0 +1,28 @@
+declare namespace oj {
+ class ojAvatar extends JetElement {
+ initials: string;
+ size: 'xxs'|'xs'|'sm'|'md'|'lg'|'xl'|'xxl';
+ src: string;
+ onInitialsChanged: (event: CustomEvent)=> any;
+ onSizeChanged: (event: CustomEvent)=> any;
+ onSrcChanged: (event: CustomEvent)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojAvatarEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ getProperty(property: string): any;
+ setProperties(properties: object): void;
+ setProperty(property: string, value: any): void;
+ }
+ interface ojAvatarEventMap extends oj.JetElementEventMap {
+ 'initialsChanged': CustomEvent;
+ 'sizeChanged': CustomEvent;
+ 'srcChanged': CustomEvent;
+ }
+ interface ojAvatarSettableProperties extends JetSettableProperties {
+ initials: string;
+ size: 'xxs'|'xs'|'sm'|'md'|'lg'|'xl'|'xxl';
+ src: string;
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojbutton/index.d.ts b/types/@oracle/oraclejet/ojs/ojbutton/index.d.ts
new file mode 100644
index 0000000000..22df674702
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojbutton/index.d.ts
@@ -0,0 +1,144 @@
+///
+declare namespace oj {
+ class ojButton extends baseComponent {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ onChromingChanged: (event: CustomEvent)=> any;
+ onDisabledChanged: (event: CustomEvent)=> any;
+ onDisplayChanged: (event: CustomEvent)=> any;
+ onOjAction: (event: oj.ojButton.ojAction)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojButtonEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ }
+ namespace ojButton {
+ class ojAction extends CustomEvent<{ [propName: string]: any}> {
+
+ }
+ }
+ interface ojButtonEventMap extends oj.baseComponentEventMap {
+ 'ojAction': oj.ojButton.ojAction;
+ 'chromingChanged': CustomEvent;
+ 'disabledChanged': CustomEvent;
+ 'displayChanged': CustomEvent;
+ }
+ interface ojButtonSettableProperties extends baseComponentSettableProperties {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ }
+
+}
+declare namespace oj {
+ abstract class ojButtonset extends baseComponent {
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojButtonsetEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ }
+ interface ojButtonsetEventMap extends oj.baseComponentEventMap {
+ }
+ interface ojButtonsetSettableProperties extends baseComponentSettableProperties {
+ }
+
+}
+declare namespace oj {
+ class ojButtonsetMany extends ojButtonset {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ focusManagement: 'oneTabstop'|'none';
+ value: Array|null;
+ onChromingChanged: (event: CustomEvent)=> any;
+ onDisabledChanged: (event: CustomEvent)=> any;
+ onDisplayChanged: (event: CustomEvent)=> any;
+ onFocusManagementChanged: (event: CustomEvent)=> any;
+ onValueChanged: (event: CustomEvent)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojButtonsetManyEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ }
+ interface ojButtonsetManyEventMap extends oj.ojButtonsetEventMap {
+ 'chromingChanged': CustomEvent;
+ 'disabledChanged': CustomEvent;
+ 'displayChanged': CustomEvent;
+ 'focusManagementChanged': CustomEvent;
+ 'valueChanged': CustomEvent;
+ }
+ interface ojButtonsetManySettableProperties extends ojButtonsetSettableProperties {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ focusManagement: 'oneTabstop'|'none';
+ value: Array|null;
+ }
+
+}
+declare namespace oj {
+ class ojButtonsetOne extends ojButtonset {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ focusManagement: 'oneTabstop'|'none';
+ value: any;
+ onChromingChanged: (event: CustomEvent)=> any;
+ onDisabledChanged: (event: CustomEvent)=> any;
+ onDisplayChanged: (event: CustomEvent)=> any;
+ onFocusManagementChanged: (event: CustomEvent)=> any;
+ onValueChanged: (event: CustomEvent)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojButtonsetOneEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ }
+ interface ojButtonsetOneEventMap extends oj.ojButtonsetEventMap {
+ 'chromingChanged': CustomEvent;
+ 'disabledChanged': CustomEvent;
+ 'displayChanged': CustomEvent;
+ 'focusManagementChanged': CustomEvent;
+ 'valueChanged': CustomEvent;
+ }
+ interface ojButtonsetOneSettableProperties extends ojButtonsetSettableProperties {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ focusManagement: 'oneTabstop'|'none';
+ value: any;
+ }
+
+}
+declare namespace oj {
+ class ojMenuButton extends ojButton {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ onChromingChanged: (event: CustomEvent)=> any;
+ onDisabledChanged: (event: CustomEvent)=> any;
+ onDisplayChanged: (event: CustomEvent)=> any;
+ onOjAction: (event: oj.ojMenuButton.ojAction)=> any;
+
+ addEventListener(type: T, listener: (this: HTMLElement, ev: ojMenuButtonEventMap[T]) => any, useCapture?: boolean): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
+
+ }
+ namespace ojMenuButton {
+ class ojAction extends CustomEvent<{ [propName: string]: any}> {
+
+ }
+ }
+ interface ojMenuButtonEventMap extends oj.ojButtonEventMap {
+ 'ojAction': oj.ojMenuButton.ojAction;
+ 'chromingChanged': CustomEvent;
+ 'disabledChanged': CustomEvent;
+ 'displayChanged': CustomEvent;
+ }
+ interface ojMenuButtonSettableProperties extends ojButtonSettableProperties {
+ chroming: 'full'|'half'|'outlined';
+ disabled: boolean;
+ display: 'all'|'icons';
+ }
+
+}
diff --git a/types/@oracle/oraclejet/ojs/ojchart/index.d.ts b/types/@oracle/oraclejet/ojs/ojchart/index.d.ts
new file mode 100644
index 0000000000..f2e3354441
--- /dev/null
+++ b/types/@oracle/oraclejet/ojs/ojchart/index.d.ts
@@ -0,0 +1,822 @@
+///
+///
+declare namespace oj {
+ class ojChart extends dvtBaseComponent> {
+ animationOnDataChange: 'auto'|'slideToLeft'|'slideToRight'|'none';
+ animationOnDisplay: 'auto'|'alphaFade'|'zoom'|'none';
+ as: string;
+ coordinateSystem: 'polar'|'cartesian';
+ data: oj.DataProvider|null;
+ dataCursor: 'off'|'on'|'auto';
+ dataCursorBehavior: 'smooth'|'snap'|'auto';
+ dataCursorPosition: {x: number|string, y: number, y2: number};
+ dataLabel: ((context: oj.ojChart.DataLabelContext) => ({insert: Element|string}|{preventDefault: boolean}));
+ dnd: {drag: {groups: {dataTypes: string|Array, drag: ((param0: Event)=> void), dragEnd: ((param0: Event)=> void), dragStart: ((param0: Event, param1: object)=> void)}, items: {dataTypes: string|Array, drag: ((param0: Event)=> void), dragEnd: ((param0: Event)=> void), dragStart: ((param0: Event, param1: object)=> void)}, series: {dataTypes: string|Array, drag: ((param0: Event)=> void), dragEnd: ((param0: Event)=> void), dragStart: ((param0: Event, param1: object)=> void)}}, drop: {legend: {dataTypes: string|Array, dragEnter: ((param0: Event, param1: object)=> void), dragLeave: ((param0: Event, param1: object)=> void), dragOver: ((param0: Event, param1: object)=> void), drop: ((param0: Event, param1: object)=> void)}, plotArea: {dataTypes: string|Array, dragEnter: ((param0: Event, param1: object)=> void), dragLeave: ((param0: Event, param1: object)=> void), dragOver: ((param0: Event, param1: object)=> void), drop: ((param0: Event, param1: object)=> void)}, xAxis: {dataTypes: string|Array, dragEnter: ((param0: Event, param1: object)=> void), dragLeave: ((param0: Event, param1: object)=> void), dragOver: ((param0: Event, param1: object)=> void), drop: ((param0: Event, param1: object)=> void)}, y2Axis: {dataTypes: string|Array, dragEnter: ((param0: Event, param1: object)=> void), dragLeave: ((param0: Event, param1: object)=> void), dragOver: ((param0: Event, param1: object)=> void), drop: ((param0: Event, param1: object)=> void)}, yAxis: {dataTypes: string|Array, dragEnter: ((param0: Event, param1: object)=> void), dragLeave: ((param0: Event, param1: object)=> void), dragOver: ((param0: Event, param1: object)=> void), drop: ((param0: Event, param1: object)=> void)}}};
+ dragMode: 'pan'|'zoom'|'select'|'off'|'user';
+ drilling: 'on'|'seriesOnly'|'groupsOnly'|'off';
+ groupComparator: ((param0: object, param1: Object)=> number)|null;
+ hiddenCategories: Array;
+ hideAndShowBehavior: 'withRescale'|'withoutRescale'|'none';
+ highlightMatch: 'any'|'all';
+ highlightedCategories: Array;
+ hoverBehavior: 'dim'|'none';
+ initialZooming: 'first'|'last'|'none';
+ legend: {backgroundColor: string, borderColor: string, maxSize: string, position: 'start'|'end'|'bottom'|'top'|'auto', referenceObjectSection: {title: string, titleHalign: 'center'|'end'|'start', titleStyle: object}, rendered: 'on'|'off'|'auto', scrolling: 'off'|'asNeeded', sections: Array<{items: Array<{borderColor: string, categories: Array, categoryVisibility: 'hidden'|'visible', color: string, id: string, lineStyle: 'dotted'|'dashed'|'solid', lineWidth: number, markerColor: string, markerShape?: 'circle'|'diamond'|'human'|'plus'|'rectangle'|'square'|'star'|'triangleDown'|'triangleUp'|string, pattern: 'smallChecker'|'smallCrosshatch'|'smallDiagonalLeft'|'smallDiagonalRight'|'smallDiamond'|'smallTriangle'|'largeChecker'|'largeCrosshatch'|'largeDiagonalLeft'|'largeDiagonalRight'|'largeDiamond'|'largeTriangle'|'none', shortDesc: string, source: string, symbolType: 'line'|'lineWithMarker'|'image'|'marker', text: string}>, sections: Array