d5c2ec10887e7f510b020fe4d20fa8ca2aa787c8
[Packages/TYPO3.CMS.git] / Build / types / TYPO3 / index.d.ts
1 /* tslint:disable:max-classes-per-file */
2
3 /**
4  * Currently a mixture between namespace and global object
5  * Add types as you use them
6  */
7 declare namespace TYPO3 {
8   export let Backend: any;
9   export let DebugConsole: any;
10   export let Icons: any;
11   export let InfoWindow: any;
12   export let ModuleMenu: any;
13   export let Notification: any;
14   export let Modal: any;
15   export let Popover: any;
16   export let Severity: any;
17   export let ShortcutMenu: any;
18   export let Storage: any;
19   export let Utility: any;
20   export const lang: any;
21   export const settings: any;
22   export namespace CMS {
23     export namespace Backend {
24       export class FormEngineValidation {
25         public readonly errorClass: string;
26       }
27       export class FormEngine {
28         public readonly Validation: FormEngineValidation;
29       }
30     }
31   }
32 }
33
34 /**
35  * Current AMD/RequireJS modules are returning *instances* of ad-hoc *classes*, make that known to TypeScript
36  */
37
38 declare module 'TYPO3/CMS/Backend/FormEngineValidation' {
39   export = new TYPO3.CMS.Backend.FormEngineValidation();
40 }
41
42 declare module 'TYPO3/CMS/Backend/FormEngine' {
43   export = new TYPO3.CMS.Backend.FormEngine();
44 }
45
46 // type definition for global namespace object
47 interface Window {
48   TYPO3: any;
49   $: any;
50   inline: {
51     delayedImportElement: (objectId: number, table: string, uid: number, type: string) => void
52   };
53   rawurlencode: Function;
54   list_frame: Window;
55 }
56
57 /**
58  * Needed type declarations for provided libs
59  */
60 declare module 'TYPO3/CMS/Core/Contrib/imagesloaded.pkgd.min' {
61   import * as imagesloaded from 'imagesloaded';
62   export = imagesloaded;
63 }
64
65 declare module 'cm/lib/codemirror';
66 declare module 'moment';
67 declare module 'TYPO3/CMS/Backend/jsfunc.inline';
68
69 /**
70  * Options for the plugin.
71  * TODO fix this
72  */
73 interface DragUploaderOptions {
74   /**
75    * CSS selector for the element where generated messages are inserted. (required)
76    */
77   outputSelector: string;
78   /**
79    * Color of the message text. (optional)
80    */
81   outputColor?: string;
82 }
83
84 interface JQueryTypedEvent<T extends Event> extends JQueryEventObject {
85   originalEvent: T;
86 }
87
88 /**
89  * Required to make jQuery plugins "available" in TypeScript
90  */
91 interface JQuery {
92   clearable(options?: any): JQuery;
93   datetimepicker(options?: any): JQuery;
94   dragUploader(options?: DragUploaderOptions): JQuery;
95 }